public void Run(SettingsHolder settings) { List <EnabledPersistence> definitions; if (!settings.TryGet("PersistenceDefinitions", out definitions)) { return; } var enabledPersistences = PersistenceStorageMerger.Merge(definitions, settings); var resultingSupportedStorages = new List <Type>(); foreach (var definition in enabledPersistences) { var persistenceDefinition = definition.DefinitionType.Construct <PersistenceDefinition>(); persistenceDefinition.ApplyDefaults(settings); foreach (var storageType in definition.SelectedStorages) { Logger.DebugFormat("Activating persistence '{0}' to provide storage for '{1}' storage.", definition.DefinitionType.Name, storageType); persistenceDefinition.ApplyActionForStorage(storageType, settings); resultingSupportedStorages.Add(storageType); } } settings.Set("ResultingSupportedStorages", resultingSupportedStorages); }
public void Run(SettingsHolder settings) { if (!settings.TryGet("PersistenceDefinitions", out List <EnabledPersistence> definitions)) { return; } var enabledPersistences = PersistenceStorageMerger.Merge(definitions, settings); ValidateSagaAndOutboxUseSamePersistence(enabledPersistences, settings); var resultingSupportedStorages = new List <Type>(); var diagnostics = new Dictionary <string, object>(); foreach (var definition in enabledPersistences) { var persistenceDefinition = definition.DefinitionType.Construct <PersistenceDefinition>(); persistenceDefinition.ApplyDefaults(settings); foreach (var storageType in definition.SelectedStorages) { Logger.DebugFormat("Activating persistence '{0}' to provide storage for '{1}' storage.", definition.DefinitionType.Name, storageType); persistenceDefinition.ApplyActionForStorage(storageType, settings); resultingSupportedStorages.Add(storageType); diagnostics.Add(storageType.Name, new { Type = definition.DefinitionType.FullName, Version = FileVersionRetriever.GetFileVersion(definition.DefinitionType) }); } } settings.Set("ResultingSupportedStorages", resultingSupportedStorages); settings.AddStartupDiagnosticsSection("Persistence", diagnostics); }