| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- /*******************************************************************************
- * Copyright(c) 2014 dongke All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:ServiceResultManager.cs
- * 2.功能描述:服务返回实体共通处理
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 陈晓野 2015/03/27 1.00 新建
- *******************************************************************************/
- using System.Diagnostics;
- using System.Windows.Forms;
- using Dongke.IBOSS.PRD.Basics.BaseControls;
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.Library;
- using Dongke.IBOSS.PRD.Client.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- namespace Dongke.IBOSS.PRD.Client.Controls
- {
- #region 异步处理的委托
- /// <summary>
- /// 异步处理
- /// </summary>
- /// <returns></returns>
- public delegate T DKAsyncMethod<T>();
- #endregion
- /// <summary>
- /// 服务返回实体共通处理
- /// </summary>
- public static class ServiceResultManager
- {
- public enum ExitType
- {
- None,
- ReLogin,
- Close,
- }
- public static void Invoke(Form owner, ServiceResultEntity sre)
- {
- if (sre == null || sre.Status > Constant.ServiceResultStatus.Success)
- {
- return;
- }
- if (sre.Status == Constant.ServiceResultStatus.Success)
- {
- //DKMessageBox.ShowDialog(owner, DKMessageCode.I_CMN_S_002);
- return;
- }
- DialogResult dialogResult;
- ExitType exitType = ExitType.None;
- switch (sre.Status)
- {
- // -1:验证失败
- case Constant.ServiceResultStatus.ValidationFailed:
- // -2:此用户没有登录
- case Constant.ServiceResultStatus.UserNotLogin:
- dialogResult = DKMessageBox.ShowDialog(owner, DKMessageCode.WYN_CMN_S_002);
- if (dialogResult == DialogResult.Yes)
- {
- exitType = ExitType.ReLogin;
- }
- else
- {
- exitType = ExitType.Close;
- }
- break;
- // -3:此用户已在其他客户端登录
- case Constant.ServiceResultStatus.UserOtherLogin:
- dialogResult = DKMessageBox.ShowDialog(owner,
- DKMessageCode.WYN_CMN_S_003,
- LogInUserInfo.CurrentUser.CurrentUserEntity.UserCode);
- if (dialogResult == DialogResult.Yes)
- {
- exitType = ExitType.ReLogin;
- }
- else
- {
- exitType = ExitType.Close;
- }
- break;
- // -4系统账务日期错误
- case Constant.ServiceResultStatus.AccountDateError:
- DKMessageBox.ShowDialog(owner, DKMessageCode.W_CMN_S_001);
- exitType = ExitType.Close;
- break;
- // -100:没有查询结果
- case Constant.ServiceResultStatus.NoSearchResults:
- DKMessageBox.ShowDialog(owner, DKMessageCode.I_CMN_S_001);
- break;
- // -101:没有更新任何数据
- case Constant.ServiceResultStatus.NoModifyData:
- DKMessageBox.ShowDialog(owner, DKMessageCode.I_CMN_S_001);
- break;
- // -102:数据已被其他用户更改
- case Constant.ServiceResultStatus.DataChanged:
- DKMessageBox.ShowDialog(owner, DKMessageCode.W_CMN_S_005);
- break;
- // -103:有重复数据,更新失败
- case Constant.ServiceResultStatus.DataDuplicated:
- DKMessageBox.ShowDialog(owner, DKMessageCode.W_CMN_S_006, sre.Message);
- break;
- // -800:License中无此模块权限
- case Constant.ServiceResultStatus.NoLicensesRight:
- // todo
- break;
- // -801:此用户无此操作权限
- case Constant.ServiceResultStatus.NoFunRight:
- // todo
- break;
- // -999:系统异常
- case Constant.ServiceResultStatus.SystemError:
- //DKMessageBox.ShowDialog(owner, DKMessageCode.E_CMN_S_001);
- //break;
- throw new System.Exception(sre.Message);
- default:
- break;
- }
- // todo
- //// 写错误日志
- // OutputLog.Trace(LogPriority.Warning,
- // "Authorization",
- // "Authorization()",
- // ex.ToString());
- if (exitType == ExitType.None)
- {
- return;
- }
- System.Diagnostics.Process.GetCurrentProcess().Close();
- System.Environment.Exit(0);
- if (exitType == ExitType.ReLogin)
- {
- Process.Start(Constant.S_SYSTEM_CLIENT_NAME);
- }
- }
- }
- }
|