コード例 #1
0
ファイル: ConfigFileReader.cs プロジェクト: Zenidal/Generator
        public ConfigFileReader(string filePath)
        {
            var yamlConfigs = YamlReader.ConvertYamlFileToConfigurations(filePath);

            Settings = new Settings
            {
                MethodsWithWeights = new List<KeyValuePair<string, int>>(),
                ServerResponseCodesWithWeights = new List<KeyValuePair<string, int>>(),
                ExtensionsWithWeights = new List<KeyValuePair<string, int>>(),
            };

            foreach (var t in yamlConfigs)
            {
                if (t.Key1 == "methods")
                {
                    Settings.MethodsWithWeights.Add(new KeyValuePair<string, int>(t.Value1, Convert.ToInt32(t.Value2)));
                }
                if (t.Key1 == "extensions")
                {
                    Settings.ExtensionsWithWeights.Add(new KeyValuePair<string, int>(t.Value1, Convert.ToInt32(t.Value2)));
                }
                if (t.Key1 == "serverResponseCodes")
                {
                    Settings.ServerResponseCodesWithWeights.Add(new KeyValuePair<string, int>(t.Value1, Convert.ToInt32(t.Value2)));
                }
            }
        }
コード例 #2
0
        private static void ApplyAbilitySettings(CombatLogEvent @event, CombatLogViewModel viewModel, Settings settings)
        {
            if (!settings.EnableAbilitySettings) return;

            var abilitySetting = settings.AbilitySettings
                              .FirstOrDefault(s => s.AbilityId == @event.Ability.EntityId.ToString() && s.Enabled);

            if (abilitySetting != null)
            {
                if (abilitySetting.Image != null && File.Exists(abilitySetting.Image))
                {
                    viewModel.ImageUrl = abilitySetting.Image;
                }

                if (!string.IsNullOrEmpty(abilitySetting.BorderColor))
                {
                    viewModel.ImageBorderColor = abilitySetting.BorderColor.FromHexToColor();
                }

                if (abilitySetting.Aliases.Any())
                {
                    viewModel.Text = abilitySetting.Aliases.PickRandom();
                }
            }
        }
コード例 #3
0
        public static Task <IStartableEndpoint> Create(Settings.Settings settings, TransportCustomization transportCustomization, TransportSettings transportSettings, LoggingSettings loggingSettings, IContainer container, Action <ICriticalErrorContext> onCriticalError, EmbeddableDocumentStore documentStore, EndpointConfiguration configuration, bool isRunningAcceptanceTests)
        {
            var endpointName = settings.ServiceName;

            if (configuration == null)
            {
                configuration = new EndpointConfiguration(endpointName);
                var assemblyScanner = configuration.AssemblyScanner();
                assemblyScanner.ExcludeAssemblies("ServiceControl.Plugin");
            }

            configuration.Pipeline.Register(typeof(FullTypeNameOnlyBehavior), "Remove asm qualified name from the message type header");

            // HACK: Yes I know, I am hacking it to pass it to RavenBootstrapper!
            configuration.GetSettings().Set(documentStore);
            configuration.GetSettings().Set("ServiceControl.Settings", settings);

            configuration.SendOnly();

            transportCustomization.CustomizeSendOnlyEndpoint(configuration, transportSettings);
            //DisablePublishing API is available only on TransportExtensions for transports that implement IMessageDrivenPubSub so we need to set settings directly
            configuration.GetSettings().Set("NServiceBus.PublishSubscribe.EnablePublishing", false);

            var routing = new RoutingSettings(configuration.GetSettings());

            routing.RouteToEndpoint(typeof(RegisterNewEndpoint), settings.ServiceControlQueueAddress);
            routing.RouteToEndpoint(typeof(MarkMessageFailureResolvedByRetry), settings.ServiceControlQueueAddress);

            configuration.GetSettings().Set(loggingSettings);
            configuration.SetDiagnosticsPath(loggingSettings.LogPath);

            // sagas are not auto-disabled for send-only endpoints
            configuration.DisableFeature <Sagas>();

            configuration.UseSerialization <NewtonsoftSerializer>();

            configuration.Conventions().DefiningEventsAs(t => typeof(IEvent).IsAssignableFrom(t) || IsExternalContract(t));

            if (!isRunningAcceptanceTests)
            {
                configuration.ReportCustomChecksTo(settings.ServiceControlQueueAddress);
            }

#pragma warning disable CS0618 // Type or member is obsolete
            configuration.UseContainer <AutofacBuilder>(c => c.ExistingLifetimeScope(container));
#pragma warning restore CS0618 // Type or member is obsolete

            configuration.DefineCriticalErrorAction(criticalErrorContext =>
            {
                onCriticalError(criticalErrorContext);
                return(Task.FromResult(0));
            });

            if (Environment.UserInteractive && Debugger.IsAttached)
            {
                configuration.EnableInstallers();
            }

            return(Endpoint.Create(configuration));
        }
コード例 #4
0
        public static Task <IStartableEndpoint> Create(Settings.Settings settings, TransportCustomization transportCustomization, TransportSettings transportSettings, LoggingSettings loggingSettings, IContainer container, Action <ICriticalErrorContext> onCriticalError, EmbeddableDocumentStore documentStore, EndpointConfiguration configuration, bool isRunningAcceptanceTests)
        {
            var endpointName = settings.ServiceName;

            if (configuration == null)
            {
                configuration = new EndpointConfiguration(endpointName);
                var assemblyScanner = configuration.AssemblyScanner();
                assemblyScanner.ExcludeAssemblies("ServiceControl.Plugin");
            }

            // HACK: Yes I know, I am hacking it to pass it to RavenBootstrapper!
            configuration.GetSettings().Set(documentStore);
            configuration.GetSettings().Set("ServiceControl.Settings", settings);

            MapSettings(transportSettings, settings);

            transportCustomization.CustomizeEndpoint(configuration, transportSettings);

            configuration.GetSettings().Set(loggingSettings);

            // Disable Auditing for the service control endpoint
            configuration.DisableFeature <Audit>();
            configuration.DisableFeature <AutoSubscribe>();
            configuration.DisableFeature <TimeoutManager>();
            configuration.DisableFeature <Outbox>();

            var recoverability = configuration.Recoverability();

            recoverability.Immediate(c => c.NumberOfRetries(3));
            recoverability.Delayed(c => c.NumberOfRetries(0));
            configuration.SendFailedMessagesTo($"{endpointName}.Errors");

            configuration.UseSerialization <NewtonsoftSerializer>();

            configuration.LimitMessageProcessingConcurrencyTo(settings.MaximumConcurrencyLevel);

            configuration.Conventions().DefiningEventsAs(t => typeof(IEvent).IsAssignableFrom(t) || IsExternalContract(t));

            if (!isRunningAcceptanceTests)
            {
                configuration.ReportCustomChecksTo(endpointName);
            }

            configuration.UseContainer <AutofacBuilder>(c => c.ExistingLifetimeScope(container));

            configuration.DefineCriticalErrorAction(criticalErrorContext =>
            {
                onCriticalError(criticalErrorContext);
                return(Task.FromResult(0));
            });

            if (Environment.UserInteractive && Debugger.IsAttached)
            {
                configuration.EnableInstallers();
            }

            return(Endpoint.Create(configuration));
        }
コード例 #5
0
        static TransportSettings MapSettings(Settings.Settings settings)
        {
            var transportSettings = new TransportSettings
            {
                EndpointName     = settings.ServiceName,
                ConnectionString = settings.TransportConnectionString,
                MaxConcurrency   = settings.MaximumConcurrencyLevel
            };

            return(transportSettings);
        }
コード例 #6
0
        // Windows Service
        public Bootstrapper(Action <ICriticalErrorContext> onCriticalError, Settings.Settings settings, EndpointConfiguration configuration, LoggingSettings loggingSettings, Action <ContainerBuilder> additionalRegistrationActions = null)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException(nameof(configuration));
            }

            this.onCriticalError = onCriticalError;
            this.configuration   = configuration;
            this.loggingSettings = loggingSettings;
            this.additionalRegistrationActions = additionalRegistrationActions;
            this.settings = settings;
            Initialize();
        }
コード例 #7
0
        public static async Task <BusInstance> CreateAndStart(Settings.Settings settings, TransportCustomization transportCustomization, TransportSettings transportSettings, LoggingSettings loggingSettings, IContainer container, Action <ICriticalErrorContext> onCriticalError, EmbeddableDocumentStore documentStore, EndpointConfiguration configuration, bool isRunningAcceptanceTests)
        {
            var startableEndpoint = await Create(settings, transportCustomization, transportSettings, loggingSettings, container, onCriticalError, documentStore, configuration, isRunningAcceptanceTests)
                                    .ConfigureAwait(false);

            var endpointInstance = await startableEndpoint.Start().ConfigureAwait(false);

            var builder = new ContainerBuilder();

            builder.RegisterInstance(endpointInstance).As <IMessageSession>();

            builder.Update(container.ComponentRegistry);

            var auditIngestion = container.Resolve <AuditIngestionComponent>();

            return(new BusInstance(endpointInstance, auditIngestion));
        }
コード例 #8
0
ファイル: ConfigFileReader.cs プロジェクト: kaban4ik1994/LOG
        public ConfigFileReader(string filePath)
        {
            var yamlReader = new YamlReader(filePath);

            Settings = new Settings.Settings
            {
                AvailableMethods = new List<KeyValuePair<string, int>>(),
                AvailableProtocols = new List<KeyValuePair<string, int>>(),
                AvailableFileExtension = new List<KeyValuePair<string, int>>(),
                AvailableStatusСodes = new List<KeyValuePair<string, int>>()
            };

            for (var i = 0; i < yamlReader.Records.Count(); i++)
            {
                if (yamlReader.Records.ElementAt(i).Key1 == "Method")
                {
                    Settings.AvailableMethods.Add(new KeyValuePair<string, int>(yamlReader.Records.ElementAt(i).Value1,
                        Convert.ToInt32(yamlReader.Records.ElementAt(i).Value2)));
                }
                if (yamlReader.Records.ElementAt(i).Key1 == "Protocol")
                {
                    Settings.AvailableProtocols.Add(new KeyValuePair<string, int>(yamlReader.Records.ElementAt(i).Value1,
                        Convert.ToInt32(yamlReader.Records.ElementAt(i).Value2)));
                }

                if (yamlReader.Records.ElementAt(i).Key1 == "StatusCode")
                {
                    Settings.AvailableStatusСodes.Add(new KeyValuePair<string, int>(yamlReader.Records.ElementAt(i).Value1,
                        Convert.ToInt32(yamlReader.Records.ElementAt(i).Value2)));
                }

                if (yamlReader.Records.ElementAt(i).Key1 == "FileExtension")
                {
                    Settings.AvailableFileExtension.Add(new KeyValuePair<string, int>(yamlReader.Records.ElementAt(i).Value1,
                        Convert.ToInt32(yamlReader.Records.ElementAt(i).Value2)));
                }
            }
        }
コード例 #9
0
ファイル: Settings.cs プロジェクト: enriquein/snippets
        public static Settings Load()
        {
            string path = Path.Combine(Program.AppDataPath, _fileName);
            Settings settingsToReturn;
            FileStream fs = null;

            try
            {
                fs = new FileStream(path, FileMode.Open);
                XmlSerializer xs = new XmlSerializer(typeof(Settings));
                settingsToReturn = (Settings)xs.Deserialize(fs);
            }
            catch (FileNotFoundException)
            {
                settingsToReturn = new Settings();
            }
            finally
            {
                if (fs != null)
                    fs.Close();
            }

            return settingsToReturn;
        }
コード例 #10
0
        private void ApplyLoggerSettings(CombatLogEvent combatLogEvent, CombatLogViewModel viewModel, Settings settings)
        {
            var abilityId = combatLogEvent.Ability.EntityId;

            viewModel.ImageUrl = imageService.GetImageById(abilityId);
            viewModel.IsUnknown = imageService.IsUnknown(abilityId);
            viewModel.ImageBorderColor = Colors.Transparent;
            viewModel.Text = combatLogEvent.Ability.DisplayName;
            viewModel.TextVisibility = settings.EnableAbilityText ? Visibility.Visible : Visibility.Hidden;
            viewModel.TooltipText = $"{combatLogEvent.Ability.EntityId} (Click to copy Ability ID to Clipboard!)";
        }
コード例 #11
0
 private void ApplyFontSettings(CombatLogViewModel viewModel, Settings settings)
 {
     viewModel.FontColor = new SolidColorBrush(settings.AbilityTextColor.FromHexToColor());
     viewModel.FontFamily = fontService.GetFontFromString(settings.TextFont);
     viewModel.FontSize = settings.FontSize;
     viewModel.FontBorderColor = new SolidColorBrush(settings.AbilityTextBorderColor.FromHexToColor());
     viewModel.FontBorderThickness = settings.FontBorderThickness;
 }
コード例 #12
0
 public SetupBootstrapper(Settings.Settings settings, string[] excludeAssemblies = null)
 {
     this.excludeAssemblies = excludeAssemblies;
     this.settings          = settings;
 }
コード例 #13
0
 private static void MapSettings(TransportSettings transportSettings, Settings.Settings settings)
 {
     transportSettings.EndpointName     = settings.ServiceName;
     transportSettings.ConnectionString = settings.TransportConnectionString;
     transportSettings.MaxConcurrency   = settings.MaximumConcurrencyLevel;
 }
コード例 #14
0
 public SetupBootstrapper(Settings.Settings settings)
 {
     this.settings = settings;
 }