diff --git a/zero.Core/Architecture/ZeroModuleCollection.cs b/zero.Core/Architecture/ZeroModuleCollection.cs index 11145c16..8ae3278b 100644 --- a/zero.Core/Architecture/ZeroModuleCollection.cs +++ b/zero.Core/Architecture/ZeroModuleCollection.cs @@ -11,6 +11,12 @@ public class ZeroModuleCollection : ZeroModule ConcurrentDictionary _modules = new(); + /// + /// Get all registered modules + /// + public IEnumerable GetAll() => _modules.Values; + + /// /// Adds a zero module /// diff --git a/zero.Core/Localization/CultureResolver.cs b/zero.Core/Localization/CultureResolver.cs index e8960f07..00d43ea0 100644 --- a/zero.Core/Localization/CultureResolver.cs +++ b/zero.Core/Localization/CultureResolver.cs @@ -17,7 +17,7 @@ public class CultureResolver : ICultureResolver /// - public async Task Resolve(IZeroContext context) + public Task Resolve(IZeroContext context) { // TODO this is just fake, we need to correctly resolve culture here @@ -34,7 +34,7 @@ public class CultureResolver : ICultureResolver if (language == null) { Logger.LogWarning("Could not set request culture as there is no available Language stored"); - return CultureInfo.CurrentCulture; + return Task.FromResult(CultureInfo.CurrentCulture); } try @@ -53,11 +53,11 @@ public class CultureResolver : ICultureResolver catch (Exception ex) { Logger.LogError(ex, "Could not create culture from Language code {code}", language.Code); - return CultureInfo.CurrentCulture; + return Task.FromResult(CultureInfo.CurrentCulture); } } - return CultureInfo.CurrentCulture; + return Task.FromResult(CultureInfo.CurrentCulture); } } diff --git a/zero.Core/Persistence/ZeroStore.cs b/zero.Core/Persistence/ZeroStore.cs index 2444b732..035e0807 100644 --- a/zero.Core/Persistence/ZeroStore.cs +++ b/zero.Core/Persistence/ZeroStore.cs @@ -37,6 +37,11 @@ public class ZeroStore : IZeroStore database ??= ResolvedDatabase; options ??= new SessionOptions() { Database = database }; + if (!database.HasValue()) + { + return Session(true, database, resolution, options); + } + if (resolution == ZeroSessionResolution.Create) { return Raven.OpenAsyncSession(options) as IZeroDocumentSession;