public SolutionConfiguration(IConfiguration configuration) { AppDatabaseCredentials = new AppDatabaseCredentials(new SqlServerDatabaseCredentials(configuration, "App")); HangfireDatabaseCredentials = new HangfireDatabaseCredentials(new SqlServerDatabaseCredentials(configuration, "Hangfire")); RedisCredentials = new RedisCredentials(new RedisLocalCredentialsBase(configuration)); RabbitMqCredentials = new RabbitMqCredentials(configuration); SeqUrl = new Uri(configuration.GetNotNullOrEmpty("Seq:Url")); TelegramUrl = new Uri(configuration.GetNotNullOrEmpty("Telegram:Url")); EventStoreUrl = new Uri(configuration.GetNotNullOrEmpty("EventStore:Url")); }
public static void OverrideWithLocalCredentials(ContainerBuilder builder) { builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var credentials = new TelegramDatabaseCredentials(); credentials.BuildLocalConnectionString( configuration["Api:Sql:Url"], configuration["Api:Sql:Catalog"]); return(credentials); }).SingleInstance(); builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var credentials = new HangfireDatabaseCredentials(); credentials.BuildLocalConnectionString( configuration["Hangfire:Sql:Url"], configuration["Hangfire:Sql:Catalog"]); return(credentials); }).SingleInstance(); }
public IServiceProvider ConfigureServices(IServiceCollection services) { IContainer applicationContainer = null; services.AddAutoMapper(); services.AddMvc(options => { options.Filters.Add(typeof(ApiExceptionAttribute)); }) .AddJsonOptions(options => { options.SerializerSettings.NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore; }); services.AddAuthentication("Bearer") .AddIdentityServerAuthentication(options => { options.Authority = _configuration["Auth:Client:Url"]; options.RequireHttpsMetadata = !_hostingEnvironment.IsDevelopment(); options.ApiName = "api"; }); services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "FWT.Api", Version = "v1" }); c.MapType <Guid>(() => new Schema() { Type = "string", Format = "text", Description = "GUID" }); c.AddSecurityDefinition("Bearer", new ApiKeyScheme() { Description = "JWT Authorization header using the Bearer scheme. Example: \"Bearer {token}\"", Name = "Authorization", In = "header", Type = "apiKey" }); c.OperationFilter <AuthorizeOperationFilter>(); }); services.ConfigureSwaggerGen(options => { options.CustomSchemaIds(type => type.FullName); options.DescribeAllEnumsAsStrings(); }); services.AddHangfire(hangfire => { HangfireDatabaseCredentials hangfireDatabaseCredentials = applicationContainer.Resolve <HangfireDatabaseCredentials>(); hangfire.UseSqlServerStorage(hangfireDatabaseCredentials.ConnectionString); }); services.AddDbContext <TelegramDatabaseContext>(); applicationContainer = IocConfig.RegisterDependencies(services, _hostingEnvironment, _configuration); var cache = applicationContainer.Resolve <IServer>(); cache.FlushDatabase(); return(new AutofacServiceProvider(applicationContainer)); }
public static void RegisterCredentials(ContainerBuilder builder) { builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var credentials = new HangfireDatabaseCredentials(); credentials.BuildConnectionString( configuration["Hangfire:Sql:Url"], configuration["Hangfire:Sql:Port"].To <int>(), configuration["Hangfire:Sql:Catalog"], configuration["Hangfire:Sql:User"], configuration["Hangfire:Sql:Password"]); return(credentials); }).SingleInstance(); builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var credentails = new IdentityModelCredentials() { ClientId = configuration["Auth:Client:Id"], ClientSecret = configuration["Auth:Client:Secret"] }; return(credentails); }).SingleInstance(); builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var credentails = new RedisCredentials(); credentails.BuildConnectionString( configuration["Redis:Name"], configuration["Redis:Password"], configuration["Redis:Port"].To <int>(), isSsl: true, allowAdmin: true); return(ConnectionMultiplexer.Connect(credentails.ConnectionString)); }).SingleInstance(); builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var credentials = new TelegramDatabaseCredentials(); credentials.BuildConnectionString( configuration["Api:Sql:Url"], configuration["Api:Sql:Port"].To <int>(), configuration["Api:Sql:Catalog"], configuration["Api:Sql:User"], configuration["Api:Sql:Password"]); return(credentials); }).SingleInstance(); builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var settings = new TelegramSettings() { AppHash = configuration["Telegram:Settings:AppHash"], AppId = configuration["Telegram:Settings:AppId"].To <int>(), ServerAddress = configuration["Telegram:Settings:ServerAddress"], ServerPort = configuration["Telegram:Settings:ServerPort"].To <int>(), ServerPublicKey = configuration["Telegram:Settings:ServerPublicKey"] }; return(settings); }).SingleInstance(); builder.Register(b => { var configuration = b.Resolve <IConfiguration>(); var connectionStringBuilder = new EventHubsConnectionStringBuilder(configuration["EventHub:ConnectionString"]) { EntityPath = configuration["EventHub:EntityPath"] }; return(connectionStringBuilder); }).SingleInstance(); }