示例#1
0
        private GlobalSettingsForClient LoadGlobalSettings(AdminRepository _)
        {
            var result = new GlobalSettingsForClient
            {
            };

            return(result);
        }
示例#2
0
        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
            });
        }
示例#3
0
        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);
        }
示例#5
0
        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);
        }