Composite.Data.PageFolderFacade.GetDefinedFolderTypes C# (CSharp) Метод

GetDefinedFolderTypes() публичный статический Метод

Returns (if any) folder types that are defined on the given page
public static GetDefinedFolderTypes ( this page ) : IEnumerable
page this
Результат IEnumerable
        public static IEnumerable<Type> GetDefinedFolderTypes(this IPage page)
        {
            Verify.ArgumentNotNull(page, nameof(page));

            var folderDefinitions = DataFacade.GetData<IPageFolderDefinition>();

            IEnumerable<Guid> typeIds;

            if (folderDefinitions.IsEnumerableQuery())
            {
                typeIds = folderDefinitions
                            .Evaluate()
                            .Where(f => f.PageId == page.Id)
                            .Select(f => f.FolderTypeId);
            }
            else
            {
                typeIds = folderDefinitions
                            .Where(f => f.PageId == page.Id)
                            .Select(f => f.FolderTypeId)
                            .Evaluate();
            }

            foreach (Guid typeId in typeIds)
            {
                var dataTypeDescriptor = DynamicTypeManager.GetDataTypeDescriptor(typeId);
                Verify.IsNotNull(dataTypeDescriptor, "Missing a page data folder type with id '{0}', referenced by a IPageFolderDefinition record", typeId);
                
                yield return TypeManager.GetType(dataTypeDescriptor.TypeManagerTypeName);
            }
        }