public Task <IEnumerable <IPageCollection> > FindCollectionsAsync(string pageTypeName, string title = null, bool includeDerivedTypes = true) { if (pageTypeName == null) { throw new ArgumentNullException(nameof(pageTypeName)); } var pageMetadata = pageMetadataManager.FindPageMetadataByName(pageTypeName); if (pageMetadata == null) { throw new ArgumentException($"Тип страницы {pageTypeName} не существует."); } var pageTypeNames = new List <string> { pageMetadata.Name }; if (includeDerivedTypes) { foreach (var derivedPageMetadata in pageMetadata.GetDerivedMetadataWithHierarhy(false)) { pageTypeNames.Add(derivedPageMetadata.Name); } } return(repositiry.FindCollectionsAsync(websiteContext.Website.Id, pageTypeNames.ToArray(), title)); }
public static PageMetadataProvider GetMetadata(this IPageMetadataManager pageMetadataManager, string name) { var pageMetadataProvider = pageMetadataManager.FindPageMetadataByName(name); if (pageMetadataProvider == null) { throw new ArgumentException($"Тип страницы {name} не найден.", nameof(pageMetadataProvider)); } return(pageMetadataProvider); }
public Task <PageMetadataProvider> GetPageTypeAsync(IPage page, CancellationToken cancellationToken = default) { if (page == null) { throw new ArgumentNullException(nameof(page)); } var pageType = pageMetadataManager.FindPageMetadataByName(page.TypeName); if (pageType == null) { throw new InvalidOperationException($"Тип страницы {page.TypeName} не зарегистрирован."); } return(Task.FromResult(pageType)); }