Пример #1
0
        public PagedListModel <GroupLineItem> QueryGroupLines(GL_LineModelSearch searchModel, Page page)
        {
            var totalCount = 0;
            var groupLines = lineGroupRepository.QueryGroupLines(searchModel, page, out totalCount).AsEnumerable();

            return(new PagedListModel <GroupLineItem>(totalCount, groupLines));
        }
Пример #2
0
        public IQueryable <GroupLineItem> QueryGroupLines(GL_LineModelSearch search, Page page, out int count)
        {
            var query = from c in DataContext.GL_LineGroup
                        join s1 in DataContext.System_Organization on c.Plant_Organization_UID equals s1.Organization_UID
                        join s2 in DataContext.System_Organization on c.BG_Organization_UID equals s2.Organization_UID
                        join s3 in DataContext.System_Organization on c.FunPlant_Organization_UID equals s3.Organization_UID into t3
                        from s3 in t3.DefaultIfEmpty()
                        join s4 in DataContext.GL_LineGroup on c.LineParent_ID equals s4.LineGroup_UID into t4
                        from s4 in t4.DefaultIfEmpty()
                        join u in DataContext.System_Users on c.Modified_UID equals u.Account_UID
                        join s5 in DataContext.System_Project on c.CustomerID equals s5.Project_UID into t5
                        from s5 in t5.DefaultIfEmpty()

                        select new GroupLineItem
            {
                LineGroup_UID             = c.LineGroup_UID,
                Plant_Organization_UID    = c.Plant_Organization_UID,
                BG_Organization_UID       = c.BG_Organization_UID,
                FunPlant_Organization_UID = c.FunPlant_Organization_UID,
                LineID            = c.LineID,
                LineParent_ID     = c.LineParent_ID,
                LineParent_Name   = s4.LineName,
                LineName          = c.LineName,
                factory           = s1.Organization_Name,
                op_Type           = s2.Organization_Name,
                funPlant          = s3.Organization_Name,
                Modified_UserName = u.User_Name,
                Modified_Date     = c.Modified_Date,
                CustomerID        = c.CustomerID,
                Project_Name      = s5.Project_Name,
                MESProject_Name   = s5.MESProject_Name
            };

            if (search.Plant_Organization_UID != 0 && search.Plant_Organization_UID != null)
            {
                query = query.Where(p => p.Plant_Organization_UID == search.Plant_Organization_UID);
            }

            if (search.BG_Organization_UID != 0 && search.BG_Organization_UID != null)
            {
                query = query.Where(p => p.BG_Organization_UID == search.BG_Organization_UID);
            }

            if (search.FunPlant_Organization_UID != 0 && search.FunPlant_Organization_UID != null)
            {
                query = query.Where(p => p.FunPlant_Organization_UID == search.FunPlant_Organization_UID);
            }

            if (search.LineID != 0 && search.LineID != null)
            {
                query = query.Where(p => p.LineGroup_UID == search.LineID || p.LineParent_ID == search.LineID);
            }

            if (search.CustomerID != 0 && search.CustomerID != null)
            {
                query = query.Where(p => p.CustomerID == search.CustomerID);
            }

            query = query.Where(o => o.MESProject_Name != "" && o.MESProject_Name != null);

            count = query.Count();
            return(query
                   .OrderBy(o => o.Plant_Organization_UID)
                   .ThenBy(o => o.BG_Organization_UID)
                   .ThenBy(o => o.FunPlant_Organization_UID)
                   .ThenBy(o => o.LineGroup_UID)
                   .GetPage(page));
        }