protected async Task <UsageType> GetUsageTypeAsync(CollectionListConfig config, CollectionSetup?collection) { if (config is ReferencedCollectionListConfig referencedCollectionList) { if (referencedCollectionList.CollectionAlias == collection?.Alias) { return((collection.ListEditor != null ? UsageType.Edit : 0) | (collection.ListView != null ? UsageType.View : 0)); } else { // TODO: this can trigger infinite loops / stack overflows.. var resolver = _setupResolver.Value; var referencedCollection = await resolver.ResolveSetupAsync(referencedCollectionList.CollectionAlias); return((referencedCollection?.ListEditor != null ? UsageType.Edit : 0) | (referencedCollection?.ListView != null ? UsageType.View : 0)); } } else { return((config?.ListEditor != null ? UsageType.Edit : 0) | (config?.ListView != null ? UsageType.View : 0)); } }
internal SubCollectionListSetup(CollectionListConfig subCollection) { Index = subCollection.Index; CollectionAlias = subCollection.CollectionAlias; }