public async Task <ApiResult <PlanCommentInfoViewModel> > ItemPlanCom(int ID)
        {
            var                      res = new ApiResult <PlanCommentInfoViewModel>();
            PlanCommentInfo          m;
            PlanCommentInfoViewModel pm = new PlanCommentInfoViewModel();

            if (ID > 0)
            {
                m = plancomdb.GetId(ID);
                if (m != null)
                {
                    pm.ID            = m.ID;
                    pm.ProjectID     = m.ProjectID;
                    pm.ProjectNodeID = m.ProjectNodeID;
                    pm.PlanID        = m.PlanID;
                    pm.UserID        = m.UserID;
                    pm.Title         = m.Title;
                    UserInfo userInfo = userdb.GetId(m.UserID);
                    if (userInfo != null)
                    {
                        pm.UserName = userdb.GetNames(userInfo);
                    }
                    pm.AddDate   = Utility.GetDateFormat(m.AddDate);
                    pm.IsEnable  = m.IsEnable;
                    pm.IsConfirm = m.IsConfirm;
                    res.success  = true;
                }
            }
            res.data = pm;
            return(await Task.Run(() => res));
        }
        public async Task <ApiResult <IEnumerable <ProjectPlanViewModel> > > PlanList(string ProjectID, int?ProjectNodeID, bool?IsComplete, bool?IsEnable)
        {
            // 以接口的形式返回数据
            var res = new ApiResult <IEnumerable <ProjectPlanViewModel> >()
            {
                statusCode = (int)ApiEnum.Status
            };

            if (ProjectNodeID == null)
            {
                ProjectNodeID = 0;
            }
            var parm = Expressionable.Create <ProjectPlanInfo>()
                       .AndIF(IsComplete != null, o => o.IsComplete == IsComplete)
                       .AndIF(IsEnable != null, m => m.IsEnable == IsEnable)
                       .AndIF(!string.IsNullOrEmpty(ProjectID), m => m.ProjectID == ProjectID)
                       .AndIF(ProjectNodeID != 0, m => m.ProjectNodeID == ProjectNodeID);
            var list = plandb.GetNopage(parm.ToExpression(), "Sorting,ID DESC");
            List <ProjectPlanViewModel> list2 = new List <ProjectPlanViewModel>();

            if (list != null && list.Count > 0)
            {
                foreach (var item in list)
                {
                    ProjectPlanViewModel pm = new ProjectPlanViewModel();
                    pm.ID            = item.ID;
                    pm.ProjectID     = item.ProjectID;
                    pm.ProjectNodeID = item.ProjectNodeID;
                    pm.UserID        = item.UserID;
                    UserInfo userInfo = userdb.GetId(item.UserID);
                    if (userInfo != null)
                    {
                        pm.Principal = userdb.GetNames(userInfo);
                    }
                    pm.Contents   = item.Contents;
                    pm.BeginDate  = Utility.GetDateFormat(item.BeginDate);
                    pm.EndDate    = Utility.GetDateFormat(item.EndDate);
                    pm.IsEnable   = item.IsEnable;
                    pm.IsComplete = item.IsComplete;

                    var parm2 = Expressionable.Create <PlanCommentInfo>()
                                .AndIF(!string.IsNullOrEmpty(ProjectID), m => m.ProjectID == ProjectID)
                                .AndIF(ProjectNodeID != 0, m => m.ProjectNodeID == ProjectNodeID);
                    var list3 = plancomdb.GetNopage(parm2.ToExpression(), "ID DESC");
                    List <PlanCommentInfoViewModel> list4 = new List <PlanCommentInfoViewModel>();
                    if (list3 != null && list3.Count > 0)
                    {
                        foreach (var item2 in list3)
                        {
                            if (item2.UserID == item.UserID && item.ID == item2.PlanID)
                            {
                                PlanCommentInfoViewModel pm2 = new PlanCommentInfoViewModel();
                                pm2.ID            = item2.ID;
                                pm2.ProjectID     = item2.ProjectID;
                                pm2.ProjectNodeID = item2.ProjectNodeID;
                                pm2.PlanID        = item2.PlanID;
                                pm2.UserID        = item2.UserID;
                                pm2.Title         = item2.Title;
                                UserInfo userInfo2 = userdb.GetId(item2.UserID);
                                if (userInfo2 != null)
                                {
                                    pm2.UserName = userdb.GetNames(userInfo2);
                                }
                                pm2.AddDate   = Utility.GetDateFormat(item2.AddDate);
                                pm2.IsEnable  = item2.IsEnable;
                                pm2.IsConfirm = item2.IsConfirm;
                                list4.Add(pm2);
                            }
                        }
                        pm.planCommentInfoViews = list4;
                    }

                    list2.Add(pm);
                }
                res.success    = true;
                res.data       = list2;
                res.statusCode = (int)ApiEnum.Status;
            }
            else
            {
                res.success    = false;
                res.statusCode = (int)ApiEnum.Status;
            }
            return(await Task.Run(() => res));
        }