public HoustonSettingsConfigurator(ServiceApiHoustonProperties properties)
 {
     this.properties = properties;
     Settings        = ApplicationSettings.LoadDefault("serviceApi.csf");
     Logger          = new SerilogLog(SerilogConfigurator.ConfigureLogger(Settings.GetString("LogDirectory")).WithConsole().CreateLogger());
     ConfigureContainer();
 }
 public HoustonSettingsConfigurator(FrontApiHoustonProperties properties)
 {
     this.properties = properties;
     Settings        = new ApplicationSettingsBuilder()
                       .LoadFromLocalSettings("frontApi.csf")
                       .Build();
     Logger = new SerilogLog(SerilogConfigurator.ConfigureLogger(Settings.GetString("LogDirectory")).WithConsole().CreateLogger());
     ConfigureContainer();
 }
        public static void Configure(this IContainer container)
        {
            var applicationSettings = ApplicationSettings.LoadDefault("actualizer.csf");
            var settings            = new BaseServiceSettings(applicationSettings);

            Log.Logger = SerilogConfigurator
                         .ConfigureLogger(settings.LogDirectory)
                         .WithConsole()
                         .CreateLogger();

            container.Configurator.ForAbstraction <IApplicationSettings>().UseInstances(applicationSettings);

            Log.Logger.Information("Start actualizing cassandra");
            container.ConfigureRepositories();
        }
Ejemplo n.º 4
0
        public static void Main(string[] args)
        {
            var container = new Container(new ContainerConfiguration(AssembliesLoader.Load()));
            var settings  = ApplicationSettings.LoadDefault("godLikeTools.csf");

            container.Configurator.ForAbstraction <IApplicationSettings>().UseInstances(settings);
            container.ConfigureRepositories();

            var logger = new SerilogLog(SerilogConfigurator.ConfigureLogger(settings.GetString("LogDirectory")).WithConsole().CreateLogger());

            container.Configurator.ForAbstraction <ILog>().UseInstances(logger);

            var commandLine = new CommandLine(args);
            var command     = commandLine.GetCommandLineSetting("-mode");

            var processorTypes = Assembly.GetExecutingAssembly()
                                 .GetTypes()
                                 .Where(x => typeof(ICommandProcessor).IsAssignableFrom(x))
                                 .ToArray();

            var processorsGroup = processorTypes.GroupBy(x => x.Name).FirstOrDefault(group => group.Count() > 1);

            if (processorsGroup != null)
            {
                throw new Exception("Some processors have same command descriptions: " + processorsGroup.First().Name);
            }

            var processorType = processorTypes.SingleOrDefault(x => x.Name == command);

            if (processorType == null)
            {
                throw new BadCommandLineException("The list of available commands: " +
                                                  string.Join(", ", processorTypes.Select(p => p.Name)));
            }

            var processor = (ICommandProcessor)container.Get(processorType);

            processor.Run(commandLine);
            container.Dispose();
            logger.Info($"GodLikeTool Processor in mode '{command}' completed");
        }