public IActionResult HomePage() { HomePageModel model = new HomePageModel(); FilterContainer <Solution.Domain.SolutionComponent> filter = FilterContainerBuilder.Build <Solution.Domain.SolutionComponent>(); filter.And(x => x.SolutionId == SolutionId.Value); var data = _solutionComponentService.Query(n => n.Select(s => new { s.SolutionComponentId, s.ComponentType, s.SolutionId }).Where(filter)); var sortedDescriptors = SolutionComponentCollection.SortedDescriptors; List <HomePageSolutionComponentModel> solutionComponents = new List <HomePageSolutionComponentModel>(); var group = data.GroupBy(x => x.ComponentType); foreach (var item in group) { var sortedDescriptor = sortedDescriptors.First(x => x.Module.Identity == item.Key); solutionComponents.Add(new HomePageSolutionComponentModel() { Name = sortedDescriptor.Module.Name, LocalizedName = sortedDescriptor.Module.LocalizedName, TotalCount = item.Count() }); } model.SolutionComponents = solutionComponents; model.SolutionId = SolutionId; return(View(model)); }