/// <summary>
 /// 获取一个委托详情
 /// </summary>
 /// <param name="AgencyID">委托ID</param>
 /// <returns></returns>
 public JsonResult GetAgency(string agentID)
 {
     return(this.ExecuteFunctionRun(() =>
     {
         WorkItem.Agency agency = Engine.AgencyManager.GetAgency(agentID);
         List <AgencyViewModel> griddata = new List <AgencyViewModel>();
         if (agency != null)
         {
             griddata.Add(new AgencyViewModel()
             {
                 AgencyID = agency.AgencyID + string.Empty,          //委托id
                 UserID = agency.UserID + string.Empty,
                 WasAgentID = agency.AgentID + string.Empty,         //被委托人id
                 WorkflowCode = agency.WorkflowCode + string.Empty,
                 OriginatorRange = agency.Originator + string.Empty, //发起人范围
                 StartTime = Convert.ToDateTime(agency.StartTime + string.Empty).ToString("yyyy-MM-dd"),
                 EndTime = Convert.ToDateTime(agency.EndTime + string.Empty).ToString("yyyy-MM-dd")
             });
         }
         GridViewModel <AgencyViewModel> result = new GridViewModel <AgencyViewModel>(1, griddata);
         return Json(result, JsonRequestBehavior.AllowGet);
     }, string.Empty));
 }
 /// <summary>
 /// 添加、编辑委托
 /// </summary>
 /// <param name="AgencyID"></param>
 /// <param name="IsAllWorkflow"></param>
 /// <param name="WorkflowCodes"></param>
 /// <param name="StartTime"></param>
 /// <param name="EndTime"></param>
 /// <param name="OriginatorRange"></param>
 /// <param name="WasAgent"></param>
 /// <returns></returns>
 public JsonResult AddAgency(string AgencyID, bool IsAllWorkflow, string[] WorkflowCodes, DateTime StartTime, DateTime EndTime, string OriginatorRange, string WasAgent)
 {
     return(this.ExecuteFunctionRun(() =>
     {
         ActionResult result = new ActionResult(true);
         if (AgencyID == string.Empty)     //添加模式
         {
             if (IsAllWorkflow)
             {
                 WorkflowCodes = new string[] { null };
             }
             // 检查是否已经存在
             for (int count = 0; count < WorkflowCodes.Length; count++)
             {
                 string code = WorkflowCodes[count];
                 if (this.Engine.AgencyManager.Exists(this.UserValidator.UserID, code, OriginatorRange, StartTime, EndTime))
                 {
                     result.Success = false;
                     result.Message = "Agent.AddError";
                     return Json(result, JsonRequestBehavior.AllowGet);
                 }
             }
             for (int count = 0; count < WorkflowCodes.Length; count++)
             {
                 string code = WorkflowCodes[count];
                 // 创建委托关系
                 WorkItem.Agency agency = new WorkItem.Agency(
                     this.UserValidator.UserID,
                     WorkItem.AgencyType.WorkItem,
                     WasAgent,
                     code,
                     OriginatorRange,
                     StartTime,
                     EndTime.AddDays(1).AddSeconds(-1));
                 // 检查合法性
                 if (!agency.Validate())
                 {
                     result.Success = false;
                     result.Message = "Agent.AddError";
                     return Json(result, JsonRequestBehavior.AllowGet);
                 }
                 else
                 {
                     // 保存
                     Engine.AgencyManager.Add(agency);
                 }
             }
         }
         else    //编辑模式
         {
             WorkItem.Agency thisAgency = Engine.AgencyManager.GetAgency(AgencyID);
             thisAgency.StartTime = StartTime;
             thisAgency.EndTime = EndTime;
             thisAgency.Originator = OriginatorRange;
             thisAgency.AgentID = WasAgent;
             thisAgency.AgencyType = WorkItem.AgencyType.WorkItem;
             // 检查是否已经存在
             if (this.Engine.AgencyManager.Update(thisAgency) == false)
             {
                 result.Success = false;
                 result.Message = "Agent.EditError";
                 return Json(result, JsonRequestBehavior.AllowGet);
             }
         }
         return Json(result, JsonRequestBehavior.AllowGet);
     }, string.Empty));
 }