public SettingsResult SaveSettings(List <Setting> Settings)
        {
            var result = new SettingsResult {
                Settings = Settings
            };

            try
            {
                InitCusRelContext();

                foreach (var addOrUpdateResult in Settings.Select(AddOrUpdate))
                {
                    result.MergeResults(addOrUpdateResult);
                    if (!addOrUpdateResult.OK)
                    {
                        break;
                    }
                }

                // Implement distributed cache instead since this application will be load balanced
                //if (DomainCache.GetCache(_THISCONTEXTCACHEKEYNAME) != null)
                //    DomainCache.Remove(_THISCONTEXTCACHEKEYNAME);
            }
            catch (Exception e)
            {
                result.SetFail(e);
            }
            return(result);
        }
Exemplo n.º 2
0
        public Task GetSettings()
        {
            ConfigurationEntryScope?scope = null;
            var scopeAsString             = GetStringQueryString("scope", required: false);

            if (scopeAsString != null)
            {
                if (Enum.TryParse <ConfigurationEntryScope>(scopeAsString, ignoreCase: true, out var value) == false)
                {
                    throw new BadRequestException($"Could not parse '{scopeAsString}' to a valid configuration entry scope.");
                }

                scope = value;
            }

            var feature = HttpContext.Features.Get <IHttpAuthenticationFeature>() as RavenServer.AuthenticateConnection;
            var status  = feature?.Status ?? RavenServer.AuthenticationStatus.ClusterAdmin;

            DatabaseRecord databaseRecord;

            using (ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context))
            {
                var dbId = Constants.Documents.Prefix + Database.Name;
                using (context.OpenReadTransaction())
                    using (var dbDoc = ServerStore.Cluster.Read(context, dbId, out long etag))
                    {
                        if (dbDoc == null)
                        {
                            HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
                            return(Task.CompletedTask);
                        }

                        databaseRecord = JsonDeserializationCluster.DatabaseRecord(dbDoc);
                    }
            }

            var settingsResult = new SettingsResult();

            foreach (var configurationEntryMetadata in RavenConfiguration.AllConfigurationEntries.Value)
            {
                if (scope.HasValue && scope != configurationEntryMetadata.Scope)
                {
                    continue;
                }

                var entry = new ConfigurationEntryDatabaseValue(Database.Configuration, databaseRecord, configurationEntryMetadata, status);
                settingsResult.Settings.Add(entry);
            }

            using (ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context))
            {
                using (var writer = new BlittableJsonTextWriter(context, ResponseBodyStream()))
                {
                    context.Write(writer, settingsResult.ToJson());
                }
            }

            return(Task.CompletedTask);
        }
        public SettingResult GetSetting(Setting FilterBy)
        {
            SettingsResult cusRelSettingsResult = GetSettings(FilterBy);

            return(new SettingResult
            {
                Errors = cusRelSettingsResult.Errors,
                Id = cusRelSettingsResult.Id,
                OK = cusRelSettingsResult.OK,
                Setting = cusRelSettingsResult.Settings.FirstOrDefault(),
                StatusCode = cusRelSettingsResult.StatusCode
            });
        }
        public Task GetSettings()
        {
            ConfigurationEntryScope?scope = null;
            var scopeAsString             = GetStringQueryString("scope", required: false);

            if (scopeAsString != null)
            {
                if (Enum.TryParse <ConfigurationEntryScope>(scopeAsString, ignoreCase: true, out var value) == false)
                {
                    throw new BadRequestException($"Could not parse '{scopeAsString}' to a valid configuration entry scope.");
                }

                scope = value;
            }

            var feature = HttpContext.Features.Get <IHttpAuthenticationFeature>() as RavenServer.AuthenticateConnection;
            var status  = feature?.Status ?? RavenServer.AuthenticationStatus.ClusterAdmin;

            var settingsResult = new SettingsResult();

            foreach (var configurationEntryMetadata in RavenConfiguration.AllConfigurationEntries.Value)
            {
                if (scope.HasValue && scope != configurationEntryMetadata.Scope)
                {
                    continue;
                }

                var entry = new ConfigurationEntryServerValue(Server.Configuration.Settings, configurationEntryMetadata, status);
                settingsResult.Settings.Add(entry);
            }

            using (ServerStore.ContextPool.AllocateOperationContext(out TransactionOperationContext context))
            {
                using (var writer = new BlittableJsonTextWriter(context, ResponseBodyStream()))
                {
                    context.Write(writer, settingsResult.ToJson());
                }
            }

            return(Task.CompletedTask);
        }
        public SettingsResult GetSettings(Setting FilterBy = null)
        {
            SettingsResult cusRelSettingsResult = new SettingsResult();

            try
            {
                // Implement distributed cache instead since this application will be load balanced

                //var cusRelSettings = DomainCache.GetCache(_THISCONTEXTCACHEKEYNAME) as List<Setting>;

                //if (cusRelSettings == null)
                //{
                //    InitCusRelContext();

                //    if (cusRelContext.Settings != null && cusRelContext.Settings.Count() > 0)
                //    {
                //        cusRelSettings = cusRelContext.Settings.ToList().FromEntities();
                //        DomainCache.AddCache(_THISCONTEXTCACHEKEYNAME, cusRelSettings);
                //    }
                //}

                InitCusRelContext();

                var cusRelSettings = cusRelContext.Settings.ToList().FromEntities();

                if (FilterBy != null)
                {
                    cusRelSettings = cusRelSettings.Where(s => (FilterBy.GroupdId.HasValue && s.GroupdId.Value.Equals(FilterBy.GroupdId.Value) ||
                                                                (FilterBy.Name != null && s.Name.Equals(FilterBy.Name)) ||
                                                                (FilterBy.Value != null && s.Value.Equals(FilterBy.Value)))).ToList();
                }

                cusRelSettingsResult.Settings = cusRelSettings;
            }
            catch (Exception e)
            {
                cusRelSettingsResult.SetFail(e);
            }

            return(cusRelSettingsResult);
        }
Exemplo n.º 6
0
            public static SettingsResult TryGetOrCreate(out Settings instance, out string message)
            {
                if (_instance != null)
                {
                    instance = _instance;
                    message  = string.Empty;
                    return(SettingsResult.Cache);
                }

                try
                {
                    SettingsResult result = InternalTryGetOrCreateSettings(out _instance, out message);
                    instance = _instance;
                    return(result);
                }
                catch (Exception e)
                {
                    instance = null;
                    message  = e.ToString();
                    return(SettingsResult.Error);
                }
            }
        protected override void ApplySettingsCore(SettingsResult result)
        {
            Settings settings = Settings.Default;

            logger.Threshold = settings.LogLevel;
        }
 private void OnSettingsChanged(SettingsResult result)
 {
     timerMonitoring.Interval = (int)Settings.Default.MonitorRefreshTime.TotalMilliseconds;
 }
Exemplo n.º 9
0
 public SettingsResult SetConfig(string pid, SettingsResult settings)
 {
     throw new NotImplementedException();
 }