public ActionResult Index(PagerParameters pagerParameters) { if (AllowedHierarchyTypes == null) { return(new HttpUnauthorizedResult(TerritoriesUtilities.Default401HierarchyMessage)); } var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters); HierarchyAdminIndexViewModel model; if (AllowedHierarchyTypes.Any()) { var typeNames = AllowedHierarchyTypes.Select(ctd => ctd.Name).ToArray(); var hierarchies = _territoriesService .GetHierarchiesQuery(typeNames) .Slice(pager.GetStartIndex(), pager.PageSize); var pagerShape = _shapeFactory .Pager(pager) .TotalItemCount(_territoriesService.GetHierarchiesQuery(typeNames).Count()); var entries = hierarchies .Select(CreateEntry) .ToList(); model = new HierarchyAdminIndexViewModel { HierarchyEntries = entries, AllowedHierarchyTypes = AllowedHierarchyTypes.ToList(), Pager = pagerShape }; } else { //No ContentType has been defined that contains the TerritoryHierarchyPart var pagerShape = _shapeFactory .Pager(pager) .TotalItemCount(0); model = new HierarchyAdminIndexViewModel { HierarchyEntries = new List <HierarchyIndexEntry>(), AllowedHierarchyTypes = AllowedHierarchyTypes.ToList(), Pager = pagerShape }; //For now we handle this by simply pointing out that the user should create types AddModelError("", T("There are no Hierarchy types that the user is allowed to manage.")); } return(View(model)); }
public void ParameterlessGetHierarchiesQueryReturnsAllLatestVersions() { var created = AddSampleHierarchiesData(); //verify draft vs published var gotten = _territoriesService.GetHierarchiesQuery().List(); Assert.That(gotten.Count() == created.Count()); Assert.That(gotten .Select(pa => pa.ContentItem) .Where(ci => ci.IsPublished()) .Count(), Is.EqualTo(2)); Assert.That(gotten .Select(pa => pa.ContentItem) .Where(ci => !ci.IsPublished()) .Count(), Is.EqualTo(2)); }