private GlobalSettingsForClient LoadGlobalSettings(AdminRepository _) { var result = new GlobalSettingsForClient { }; return(result); }
public DataWithVersion <GlobalSettingsForClient> GetGlobalSettings() { GlobalSettingsForClient result = null; _lock.EnterReadLock(); try { result = _cache; } finally { _lock.ExitReadLock(); } if (result == null || CacheIsExpired()) { _lock.EnterWriteLock(); try { result = _cache; if (result == null || CacheIsExpired()) { using (var scope = _serviceProvider.CreateScope()) { using (var db = scope.ServiceProvider.GetRequiredService <AdminContext>()) { var dbVersion = LoadGlobalSettingsVersion(db); if (result == null || _version != dbVersion) { _cache = LoadGlobalSettings(db); result = _cache; } _version = dbVersion; _lastChecked = DateTimeOffset.Now; } } } } finally { _lock.ExitWriteLock(); } } return(new DataWithVersion <GlobalSettingsForClient> { Data = result, Version = _version }); }
private GlobalSettingsForClient LoadGlobalSettings(AdminContext db) { var result = new GlobalSettingsForClient { ActiveCultures = db.Cultures .AsNoTracking() .Where(e => e.IsActive) .ToDictionary(e => e.Id, e => new Culture { Id = e.Id, Name = e.Name, EnglishName = e.EnglishName, NeutralName = e.NeutralName, IsActive = e.IsActive }) }; return(result); }
public GlobalSettingsProvider(IEmailSender email, ISmsSender sms, IIdentityProxy identity) { // Compute the global settings object var settings = new GlobalSettingsForClient { EmailEnabled = email.IsEnabled, SmsEnabled = sms.IsEnabled, PushEnabled = false, CanInviteUsers = identity.CanInviteUsers, TokenExpiryInDays = Constants.TokenExpiryInDays }; // Compute the version as SHA1 of the JSON representation of the global settings var settingsText = JsonSerializer.Serialize(settings); var version = Sha1Hash(settingsText); // Construct the for client object _versionedSettings = new Versioned <GlobalSettingsForClient>(settings, version); }
public GlobalSettingsProvider(IOptions <GlobalOptions> options) { if (options is null) { throw new ArgumentNullException(nameof(options)); } // Compute the global settings object var opt = options.Value; var settings = new GlobalSettingsForClient { EmailEnabled = opt.EmailEnabled, SmsEnabled = opt.SmsEnabled, PushEnabled = opt.PushEnabled, }; // Compute the version as SHA1 of the JSON representation of the global settings var settingsText = JsonConvert.SerializeObject(settings); var version = Sha1Hash(settingsText); // Construct the for client object versionedSettings = new Versioned <GlobalSettingsForClient>(settings, version); }