public JsonResult GetMessageSettingsPageData()
        {
            return(ExecuteFunctionRun(() =>
            {
                ActionResult result = new ActionResult();
                try
                {
                    //构造消息设置模型对象
                    MessageSettingsViewModel model = new MessageSettingsViewModel()
                    {
                        NewWorkItemNotice = GetNewWorkItemNotice(),
                        UrgencyNotice = GetUrgencyNotice(),
                        UnfinishedWorkItemNotice = GetUnfinishedWorkItemNotice(),
                        ExceptionNotice = GetExceptionNotice(),
                        OvertimePolicy1 = GetOvertimePolicy1(),
                        OvertimePolicy2 = GetOvertimePolicy2()
                    };

                    result.Extend = new
                    {
                        MessageSettings = model,
                        DeliveryMethods = InitDeliveryMethods(),
                        WorkCalendar = InitWorkCalendar(),
                        RemindPostAction = InitRemindPostAction()
                    };
                    result.Success = true;
                }
                catch (Exception e)
                {
                    result.Success = false;
                    result.Message = e.Message;
                }
                return Json(result, JsonRequestBehavior.AllowGet);
            }));
        }
        public JsonResult SaveMessageSettings(string formData)
        {
            return(ExecuteFunctionRun(() =>
            {
                MessageSettingsViewModel model = JsonConvert.DeserializeObject <MessageSettingsViewModel>(formData);
                ActionResult result = new ActionResult();
                try
                {
                    #region 新任务到达时提醒
                    foreach (Notice notice in model.NewWorkItemNotice)
                    {
                        if (!string.IsNullOrEmpty(notice.Details))
                        {
                            notice.Details = System.Text.RegularExpressions.Regex.Replace(notice.Details, "\\s*|\t|\r|\n", "");
                            notice.Details = System.Text.RegularExpressions.Regex.Replace(notice.Details, "<ahref", "<a href");
                        }

                        int notifyType = (int)Enum.Parse(typeof(NotifyType), notice.NewTaskArrivedNotifyType);
                        switch (notifyType)
                        {
                        case (int)NotifyType.Email:
                            {
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NewWorkItemNotificationTitle, notice.NotificationTitle);
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_EmailNotificationContent, notice.Details);
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_EmailPush, notice.WetherSend.ToString().ToLower());
                                break;
                            }

                        case (int)NotifyType.App:
                            {
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NewWorkItemAppNotification, notice.NotificationTitle);    //不确定名字是否正确
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NewWorkItemAppContent, notice.Details);
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_AppPush, notice.WetherSend.ToString().ToLower());

                                break;
                            }

                        case (int)NotifyType.WeChat:
                            {
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NewWorkItemWeChatTitle, notice.NotificationTitle);
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NewWorkItemWeChatContent, notice.Details);
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_WeChatPush, notice.WetherSend.ToString().ToLower());
                                break;
                            }

                        case (int)NotifyType.DingTalk:
                            {
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NewWorkItemDDTitle, notice.NotificationTitle);
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NewWorkItemDDContent, notice.Details);
                                this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_DDPush, notice.WetherSend.ToString().ToLower());
                                break;
                            }
                        }
                    }
                    #endregion

                    #region 催办任务到达提醒
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_UrgencyNotifyType, model.UrgencyNotice.NewTaskArrivedNotifyType);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_UrgencyNotificationTitle, model.UrgencyNotice.NotificationTitle);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_EmailUrgencyContent, model.UrgencyNotice.Details);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NotifyUrgency, model.UrgencyNotice.WetherSend.ToString().ToLower());
                    #endregion

                    #region 定期发送未完成任务提醒
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_ReccurentReminderMethod, model.UnfinishedWorkItemNotice.NewTaskArrivedNotifyType);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindTime, model.UnfinishedWorkItemNotice.RemindTime);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_ReccurentReminderPattern, model.UnfinishedWorkItemNotice.Fequency);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_EmailRemindTitle, model.UnfinishedWorkItemNotice.NotificationTitle);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_EmailRemindContent, model.UnfinishedWorkItemNotice.Details);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_ReccurentReminderWorkingCalendar, model.UnfinishedWorkItemNotice.WorkCalendar);
                    string cycleType = string.Empty;
                    if (model.UnfinishedWorkItemNotice.CycleType != null)
                    {
                        foreach (string s in model.UnfinishedWorkItemNotice.CycleType)
                        {
                            cycleType += s + ";";
                        }
                        cycleType = cycleType.TrimEnd(';');
                        this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RecurrentReminderDayOfWeek, cycleType);
                    }

                    #endregion

                    #region 异常任务任务到达提醒
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_ExceptionNotifyType, model.ExceptionNotice.NewTaskArrivedNotifyType);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_ExceptionNotificationTitle, model.ExceptionNotice.NotificationTitle);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_EmailExceptionContent, model.ExceptionNotice.Details);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_NotifyException, model.ExceptionNotice.WetherSend.ToString().ToLower());
                    #endregion

                    #region 超时任务异常提醒
                    // 超时提醒策略1
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy1NotifyType, model.OvertimePolicy1.NewTaskArrivedNotifyType);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy1Title, model.OvertimePolicy1.NotificationTitle);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy1Content, model.OvertimePolicy1.Details);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy1PostInterval, model.OvertimePolicy1.TimeInterval);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy1PostAction, model.OvertimePolicy1.RemindPostAction);

                    // 超时提醒策略2
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy2NotifyType, model.OvertimePolicy2.NewTaskArrivedNotifyType);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy2Title, model.OvertimePolicy2.NotificationTitle);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy2Content, model.OvertimePolicy2.Details);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy2PostInterval, model.OvertimePolicy2.TimeInterval);
                    this.Engine.SettingManager.SetCustomSetting(CustomSetting.Setting_RemindPolicy2PostAction, model.OvertimePolicy2.RemindPostAction);
                    #endregion
                    result.Success = true;
                    result.Message = "msgGlobalString.SaveSucced";
                }
                catch (Exception e)
                {
                    result.Success = false;
                    result.Message = e.Message;
                }


                return Json(result, JsonRequestBehavior.AllowGet);;
            }));
        }