Beispiel #1
0
        public void FillReferences(IEnumerable <PageListDTO> listT)
        {
            var ids = listT.Select(d => d.Id).ToList();
            var q   = from p in DbContext.PageRoutes
                      where ids.Contains(p.Page.Id)
                      select new
            {
                p.Id,
                Edit    = p.EditUrl != null ? 1 : 0,
                Add     = p.AddUrl != null ? 1 : 0,
                Details = p.DetailsUrl != null ? 1 : 0,
                List    = p.ListUrl != null ? 1 : 0
            };

            var qq = from p in DbContext.PageParameters
                     where ids.Contains(p.Page.Id) && p.LinkedPageId != null
                     group p by p.PageId into PS
                     select new { PS.Key, Count = PS.Count() };
            var routs = q.ToList();
            var par   = qq.ToList();

            foreach (var page in listT)
            {
                var pr = routs.Where(d => d.Id == page.Id).FirstOrDefault();
                var pp = par.Where(d => d.Key == page.Id).FirstOrDefault();
                if (pr != null)
                {
                    page.References = pr.Edit + pr.Add + pr.Details + pr.List;
                }
                if (pp != null)
                {
                    page.References += pp.Count;
                }
            }
        }