internal CmsSetup(CmsConfig config) { SiteName = config.SiteName; IsDevelopment = config.IsDevelopment; CollectionsAndPages = ConfigProcessingHelper.ProcessCollections(config); if (config.CustomLoginScreenRegistration != null) { CustomLoginScreenRegistration = new CustomTypeRegistrationSetup(config.CustomLoginScreenRegistration); } if (config.CustomLoginStatusRegistration != null) { CustomLoginStatusRegistration = new CustomTypeRegistrationSetup(config.CustomLoginStatusRegistration); } MapCollections(CollectionsAndPages.SelectNotNull(x => x as CollectionSetup)); void MapCollections(IEnumerable <CollectionSetup> collections) { foreach (var collection in collections.Where(col => !col.Recursive)) { if (!_collectionMap.TryAdd(collection.Alias, collection)) { throw new InvalidOperationException($"Duplicate collection alias '{collection.Alias}' not allowed."); } if (collection.Collections.Any()) { MapCollections(collection.Collections); } } } }
internal CmsSetup(CmsConfig config) { SiteName = config.SiteName; IsDevelopment = config.IsDevelopment; AllowAnonymousUsage = config.AllowAnonymousUsage; SemaphoreMaxCount = config.SemaphoreMaxCount; Collections = ConfigProcessingHelper.ProcessCollections(config); CustomDashboardSectionRegistrations = config.CustomDashboardSectionRegistrations.ToList(x => new CustomTypeRegistrationSetup(x)); if (config.CustomLoginScreenRegistration != null) { CustomLoginScreenRegistration = new CustomTypeRegistrationSetup(config.CustomLoginScreenRegistration); } if (config.CustomLoginStatusRegistration != null) { CustomLoginStatusRegistration = new CustomTypeRegistrationSetup(config.CustomLoginStatusRegistration); } MapCollections(Collections); void MapCollections(IEnumerable <CollectionSetup> collections) { foreach (var collection in collections.Where(col => !col.Recursive)) { if (!_collectionMap.TryAdd(collection.Alias, collection)) { throw new InvalidOperationException($"Duplicate collection alias '{collection.Alias}' not allowed."); } if (collection.Collections.Any()) { MapCollections(collection.Collections); } } } }