public JsonResult GetAgentListParams(PagerInfo pagerInfo, QueryAgentListParam param)
        {
            return(ExecuteFunctionRun(() =>
            {
                int total = 0;
                //查询代理数据
                DataTable dt = QueryAgencyListParams(pagerInfo, param, out total);
                //DataTable dt = dtQuery.Clone();


                List <AgentsViewModel> list = new List <AgentsViewModel>();
                //查询代理人名称,用户名称
                Dictionary <string, string> names = this.GetUnitNamesFromTable(dt, new string[] { Agency.PropertyName_UserID, Agency.PropertyName_AgentID });
                foreach (DataRow r in dt.Rows)
                {
                    DateTime startTime, endTime;
                    string start = "", end = "";
                    if (DateTime.TryParse(r[Agency.PropertyName_StartTime].ToString(), out startTime))
                    {
                        start = startTime.ToShortDateString();
                    }
                    ;
                    if (DateTime.TryParse(r[Agency.PropertyName_EndTime].ToString(), out endTime))
                    {
                        end = endTime.ToShortDateString();
                    }
                    list.Add(new AgentsViewModel
                    {
                        ObjectID = r[Agency.PropertyName_ObjectID] + string.Empty,
                        UserName = names[r[Agency.PropertyName_UserID] + string.Empty],
                        WorkflowCode = r[Agency.PropertyName_WorkflowCode] + string.Empty,
                        WorkflowName = r[WorkflowClause.PropertyName_WorkflowName] + string.Empty,
                        AgentName = names[r[Agency.PropertyName_AgentID] + string.Empty],
                        StartTime = start,
                        EndTime = end
                    });
                }

                var griddata = new { Rows = list, Total = total };
                return Json(griddata, JsonRequestBehavior.AllowGet);
            }));
        }
        /// <summary>
        /// 查询代理数据
        /// </summary>
        /// <param name="pagerInfo">分页信息</param>
        /// <param name="total">总行数</param>
        /// <returns>带分页数据的代理数据</returns>
        private DataTable QueryAgencyListParams(PagerInfo pagerInfo, QueryAgentListParam param, out int total)
        {
            string Params = string.Empty;

            switch (pagerInfo.sortname)
            {
            case "UserName":
                Params = "UserID";

                break;

            case "WorkflowCode":
                Params = "WorkflowCode";

                break;

            case "WorkflowName":
                Params = "WorkflowName";
                break;

            case "AgentName":
                Params = "AgentID";
                break;

            case "StartTime":
                Params = "StartTime";

                break;

            case "EndTime":
                Params = "EndTime";

                break;
            }
            int       startIndex = pagerInfo.StartIndex;
            int       endIndex   = pagerInfo.EndIndex;
            DataTable dt         = this.Engine.Query.QueryAgent(pagerInfo.PageIndex, pagerInfo.PageSize, Params, pagerInfo.sortorder); // TODO:修改这个方法,带分页查询

            string UserID       = string.Empty;
            string WorkflowCode = string.Empty;
            string Mandatary    = string.Empty;

            if (param.Agent != null)
            {
                UserID = param.Agent[0] + string.Empty;
            }
            if (param.WorkFlowCode != null)
            {
                WorkflowCode = param.WorkFlowCode[0] + string.Empty;
            }
            if (param.Mandatary != null)
            {
                Mandatary = param.Mandatary[0] + string.Empty;
            }
            if (!(string.IsNullOrEmpty(UserID) && string.IsNullOrEmpty(WorkflowCode) && string.IsNullOrEmpty(Mandatary)))
            {
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string User     = dt.Rows[i]["UserID"] + string.Empty;
                    string workflow = dt.Rows[i]["WorkflowCode"] + string.Empty;
                    string Agent    = dt.Rows[i]["AgentID"] + string.Empty;
                    if (!(
                            (string.IsNullOrEmpty(UserID) || UserID.IndexOf(User) != -1) &&
                            (string.IsNullOrEmpty(WorkflowCode) || (WorkflowCode.IndexOf(workflow) != -1 && workflow != "")) &&
                            (string.IsNullOrEmpty(Mandatary) || Mandatary.IndexOf(Agent) != -1)))
                    {
                        dt.Rows[i].Delete();
                    }
                }
                dt.AcceptChanges();
            }
            DataTable dtt = this.Engine.Query.QueryAgent();

            total = dtt.Rows.Count;
            return(dt);
        }