Exemplo n.º 1
0
        public IList <Project> GetSublevelByParent(int year, IList <string> idList, IList <string> stateList, string prjId)
        {
            IList <PTPrjInfo> subproject = new PTPrjInfoService().GetSubproject(prjId);
            List <PTPrjInfo>  first      = new List <PTPrjInfo>();
            int num = (idList.Count / 0x5dc) + 1;

            for (int i = 0; i < num; i++)
            {
                List <string>    theIdList = idList.Skip <string>((i * 0x5dc)).Take <string>(0x5dc).ToList <string>();
                List <PTPrjInfo> second    = subproject.Where <PTPrjInfo>(delegate(PTPrjInfo p) {
                    if ((!stateList.Contains(p.PrjState.ToString()) || !theIdList.Contains(p.PrjGuid.ToString().ToUpper())) || (!p.StartDate.HasValue || (p.StartDate.Value.Year > year)))
                    {
                        return(false);
                    }
                    if (p.EndDate.HasValue)
                    {
                        return(p.EndDate.Value.Year >= year);
                    }
                    return(true);
                }).ToList <PTPrjInfo>();
                first = first.Union <PTPrjInfo>(second).ToList <PTPrjInfo>();
            }
            IList <Project> list4 = new List <Project>();

            foreach (PTPrjInfo info in first)
            {
                Project item = new Project {
                    Id       = info.PrjGuid.Value.ToString(),
                    Text     = info.PrjName,
                    State    = "open",
                    Children = null
                };
                list4.Add(item);
            }
            return(list4);
        }