public void WhenConfigurationExists_ThenReturnConfiguration() { IConfiguration config = new AppConfigurationBuilder() .WithSetting("Key1", "Value1") .Build(); _sut.AddSingleton(config); var result = _sut.GetConfiguration(); Assert.That(result.Get <TestSettings>().Key1, Is.EqualTo("Value1")); }
public TestShoppingServiceApi() { var environment = Environment.GetEnvironmentVariable("SHOPPING_SERVICE_ENVIRONMENT"); var configuration = AppConfigurationBuilder.Initialize( Directory.GetCurrentDirectory(), $"settings.{environment}.json" ).Build(); var dbConnectionString = Environment.GetEnvironmentVariable("SHOPPING_SERVICE_DB_CONNECTION_STRING"); var webHostBuilder = WebApplicationBuilderFactory.Initialize(configuration, dbConnectionString); _server = new TestServer(webHostBuilder); }
static void Main(string[] args) { //Load application configurations from ApplicationConfig.json file var configBuilder = new AppConfigurationBuilder(configFilePath); var configurations = configBuilder.LoadJsonConfigFile(); var sqlQueryContainer = new SqlQueryContainer(configurations); //Configurations and SqlQueryContainer validation if (configurations == null) { Console.WriteLine("JSON loader was not able to map data from configuration file. Check configuration file's path!"); } ; if (sqlQueryContainer == null) { Console.WriteLine("Initializing SqlQueryContainer encountered problem. Check configuration file's path!"); } ; //Ensure database is created. var databaseInitializer = new DatabaseInitializer(configurations, sqlQueryContainer); if (!databaseInitializer.CheckDatabaseEntityExists()) { databaseInitializer.CreateDatabaseEntity(); } //Ensure Table is created. var mainTableGenerator = new TableInitializer(configurations, sqlQueryContainer); if (!mainTableGenerator.CheckDatabaseEntityExists()) { mainTableGenerator.CreateDatabaseEntity(); } var dateImporter = new DataImporter(configurations, sqlQueryContainer); var appOutput = new ApplicationOutput(); //Import process try { dateImporter.DatabaseRecordsImport(); } catch (Exception ex) { throw ex; } Console.WriteLine(appOutput.Output()); }
public static void Main(string[] args) { var environment = Environment.GetEnvironmentVariable("SHOPPING_SERVICE_ENVIRONMENT"); var configuration = AppConfigurationBuilder.Initialize( Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), $"settings.{environment}.json" ).Build(); var dbConnectionString = Environment.GetEnvironmentVariable("SHOPPING_SERVICE_DB_CONNECTION_STRING"); WebApplicationBuilderFactory .Initialize(configuration, dbConnectionString) .Build() .Run(); }
static void Main(string[] args) { JsonConvert.DefaultSettings = () => new JsonSerializerSettings { Converters = new JsonConverter[] { new StringEnumConverter() } }; var config = new AppConfigurationBuilder() .AddJsonFile("cfg\\default.json") .AddJsonFile("cfg\\app.json") .Build(); Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .WriteTo.Console() .WriteTo.File( Path.Combine(String.Format(config["LogPath"].AsString(), config["ServiceName"]), $"{config["ServiceName"]}.txt"), rollingInterval: RollingInterval.Day) .CreateLogger(); var container = CreateContainer(config); void LogError(ILifetimeScope c, IPipelines pipelines) => pipelines.OnError.AddItemToStartOfPipeline( (ctx, ex) => { Log.Logger.Error("NancyHost Exception {@ex}", ex); switch (ex) { case ValidationException validationException: return(new TextResponse(ex.Message) { StatusCode = HttpStatusCode.UnprocessableEntity, }); } return(null); }); // ConfigurableAutofacBootstrapper реализован локально, т.к. его package не публикуется var bootstrapper = new ConfigurableAutofacBootstrapper( container, new List <Action <ILifetimeScope, IPipelines> > { LogError }, typeof(CreateReceiptModule), typeof(SwaggerModule)); InitSwagger(config); HostFactory.Run(x => { x.UseLibLog(); x.Service <BaseService>( s => { s.ConstructUsing(settings => new BaseService()); s.WhenStarted(service => service.Start()); s.WhenStopped(service => service.Stop()); s.WithNancyEndpoint( x, c => { c.UseBootstrapper(bootstrapper); var uri = new Uri(config["HostUrl"]); { c.AddHost(uri.Scheme, uri.Host, uri.Port, uri.AbsolutePath); //TODO: без авторезервирования не всегда запускается, потом убрать c.ConfigureNancy(h => h.UrlReservations = new UrlReservations() { CreateAutomatically = true }); } c.CreateUrlReservationsOnInstall(); c.OpenFirewallPortsOnInstall(config["ServiceName"]); }); }); x.StartAutomaticallyDelayed(); x.SetServiceName(config["ServiceName"]); x.SetDisplayName(config["ServiceName"]); x.SetDescription($"{config["ServiceDescription"]} | {config["HostUrl"]}"); x.RunAsNetworkService(); }); }
protected InstallerTestBase() { ServiceCollection = new ServiceCollection(); AppConfigurationBuilder = new AppConfigurationBuilder(); }