Exemplo n.º 1
0
 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"));
 }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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();
        }