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));
            }
        }
Ejemplo n.º 2
0
 internal SubCollectionListSetup(CollectionListConfig subCollection)
 {
     Index           = subCollection.Index;
     CollectionAlias = subCollection.CollectionAlias;
 }