static void Main(string[] args)
        {
            var serviceConfiguration = new ServiceConfiguration();
            var services             = serviceConfiguration.ConfigureServices();

            HostFactory.Run(x =>
            {
                x.Service <ConfigurationService>(s =>
                {
                    s.ConstructUsing(settings =>
                    {
                        var provider = services.BuildServiceProvider();

                        return(provider.GetService <ConfigurationService>());
                    });
                    s.WhenStarted(tc => tc.Start());
                    s.WhenStopped(tc => tc.Stop());
                });

                x.SetDisplayName("Configuration Service");
                x.SetDescription("This service allows that manage list of configuration datas");
                x.SetServiceName("ConfigurationService");
                x.RunAsLocalService();
                x.StartAutomatically();
            });
        }
Пример #2
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });

            ServiceConfiguration.ConfigurePageStore(services);

            services.AddDbContext <PagesContext>(
                options =>
            {
                options.UseSqlServer(
                    Configuration.GetConnectionString("PortalCore_Pages"),
                    sqlServerOptions => sqlServerOptions.MigrationsAssembly("PortalCore.DataAccess"));
            });

            var tempServicePropvider = services.BuildServiceProvider();

            services.AddMvc();
            services.Configure <RazorViewEngineOptions>(options =>
            {
                options.ViewLocationFormats.Add("{0}" + RazorViewEngine.ViewExtension);
                options.FileProviders.Add(new DatabaseFileProvider(tempServicePropvider.GetService <IPageRepository>()));
            });

            ServiceConfiguration.ConfigureServices(services);
        }
Пример #3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <DataBaseSettings>(mySettings =>
            {
                mySettings.ConnectionString = Configuration.GetConnectionString("DefaultConnection");
            });

            ServiceConfiguration.ConfigureServices(services);
        }
Пример #4
0
        /// <summary>
        /// Entry point.
        /// </summary>
        /// <returns></returns>
        private static async Task Main()
        {
            _serviceProvider = ServiceConfiguration.ConfigureServices(new ServiceCollection(), Environment.CurrentDirectory).BuildServiceProvider();

            await Task.Run(() =>
                           _serviceProvider.
                           GetService <SshPortForwardingService>()
                           .StartService()
                           );
        }
Пример #5
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            ServiceConfiguration.ConfigureServices(services, Configuration);

            services.AddSwaggerGen(s =>
            {
                s.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "Coding Exam API", Version = "v1"
                });
            });
        }
Пример #6
0
        /// <summary>
        /// Регистрация сервисов.
        /// </summary>
        /// <param name="services">Сервисы.</param>
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddApplicationInsightsTelemetry(Configuration);
            services.AddSingleton <Microsoft.AspNetCore.Http.IHttpContextAccessor, HttpContextAccessor>();            //для NLog Web
            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser()
                               .Build());
            });

            services.AddMvc();
            ServiceConfiguration.ConfigureServices(services, this.Configuration);
        }
Пример #7
0
        /// <summary>
        /// Регистрация сервисов.
        /// </summary>
        /// <param name="services">Сервисы.</param>
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddAuthorization(auth =>
            {
                auth.AddPolicy("Bearer", new AuthorizationPolicyBuilder()
                               .AddAuthenticationSchemes(JwtBearerDefaults.AuthenticationScheme)
                               .RequireAuthenticatedUser()
                               .Build());
            });

            services.AddAntiforgery(options => { options.HeaderName = TokenAuthenticationOptions.AntiforgeryHeaderName; });
            services.AddMvc();
            ServiceConfiguration.ConfigureServices(services, this.Configuration);
        }
Пример #8
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            // needed to store rate limit counters and ip rules
            services.AddMemoryCache();

            services.AddAutoMapper(typeof(Startup));

            // configure strongly typed settings object
            services.Configure <AppSettings>(this.Configuration.GetSection("AppSettings"));

            // load general configuration from appsettings.json
            services.Configure <IpRateLimitOptions>(this.Configuration.GetSection("IpRateLimiting"));

            ServiceConfiguration.ConfigureServices(services, this.Configuration);

            services.AddCors();
            services.AddControllers().AddJsonOptions(x => x.JsonSerializerOptions.IgnoreNullValues = true);
            services.AddAutoMapper(AppDomain.CurrentDomain.GetAssemblies());
        }
        public void ConfigureServices(IServiceCollection services)
        {
            ServiceConfiguration.Configure(Configuration.GetConnectionString("IAFProjectDatabase"), services);

            #region JWT token configuration

            var appSettingsSection = Configuration.GetSection("AppSettings");
            services.Configure <AppSettings>(appSettingsSection);
            AppSettings appSettings = appSettingsSection.Get <AppSettings>();

            ServiceConfiguration.Authenticate(services, appSettings.Secret);

            #endregion

            ServiceConfiguration.ConfigureServices(services);

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
            .AddJsonOptions(opt => opt.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver());
        }
Пример #10
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <PollConfiguration>(Configuration.GetSection(nameof(PollConfiguration)));

            ServiceConfiguration.ConfigureServices(services, ConfigurationManager.GetConfiguration(Configuration, "ConnectionString"));
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

            services.AddCors(options =>
            {
                options.AddPolicy("AllowAllOrigins", builder =>
                {
                    builder.AllowAnyOrigin();
                    builder.AllowAnyHeader();
                    builder.AllowAnyMethod();
                });
            });

            services.AddHealthChecks();
        }
Пример #11
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();

            //авторизация-аутентификация
            services.AddAuthentication(options =>
            {
                options.DefaultScheme             = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            })
            .AddJwtBearer(options =>
            {
                options.Authority                 = TokenAuthenticationOptions.Audience;
                options.Audience                  = TokenAuthenticationOptions.Audience;
                options.ClaimsIssuer              = TokenAuthenticationOptions.Issuer;
                options.RequireHttpsMetadata      = false;
                options.TokenValidationParameters = TokenAuthenticationOptions.Parameters;
                options.Configuration             = new OpenIdConnectConfiguration();
            });

            //локализация по заголовку Language (en|ru) в запросе
            services.AddLocalization(options => options.ResourcesPath = "Resources");
            services.Configure <RequestLocalizationOptions>(options =>
            {
                var supportedCultures = new[]
                {
                    new CultureInfo("en"),
                    new CultureInfo("ru")
                };

                options.DefaultRequestCulture = new RequestCulture(culture: "en", uiCulture: "en");
                options.SupportedCultures     = supportedCultures;
                options.SupportedUICultures   = supportedCultures;
                options.RequestCultureProviders.Insert(0, new RouteCultureProvider(options.DefaultRequestCulture));
            });

            //стандартное
            services.AddMvc();
            services.AddSignalR();
            ServiceConfiguration.ConfigureServices(services, this.Configuration);
        }
Пример #12
0
 public void ConfigureServices(IServiceCollection services)
 {
     services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
     services.AddMvc();
     ServiceConfiguration.ConfigureServices(services, this.Configuration);
 }
Пример #13
0
 private void ConfigureExternalServices(IServiceCollection services, IMvcBuilder mvcBuilder)
 {
     ServiceConfiguration.ConfigureServices(services, mvcBuilder);
 }
Пример #14
0
 // This method gets called by the runtime. Use this method to add services to the container.
 public void ConfigureServices(IServiceCollection services)
 {
     ServiceConfiguration.ConfigureServices(services, Configuration);
 }
Пример #15
0
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc(options =>
            {
                options.EnableEndpointRouting = false;
                options.Filters.Add(new ErrorHandlingFilter());
                options.Filters.Add(new ValidateModelFilter());
            }).SetCompatibilityVersion(CompatibilityVersion.Latest);

            services.AddCors();

            services.Configure <IISServerOptions>(options =>
            {
                options.AllowSynchronousIO = true;
            });

            services.AddDbContext <AppDbContext>(options =>
            {
                options.EnableSensitiveDataLogging(true);
                options.UseNpgsql(Configuration.GetConnectionString("local"));
            });

            services.AddIdentity <User, UserRole>(options =>
            {
                options.Password.RequiredLength         = 8;
                options.Password.RequireLowercase       = true;
                options.Password.RequireUppercase       = true;
                options.Password.RequireNonAlphanumeric = true;
                options.Password.RequireDigit           = true;

                options.User.RequireUniqueEmail = true;
            }).AddEntityFrameworkStores <AppDbContext>().AddDefaultTokenProviders();

            services.AddJsonApi <AppDbContext>(options => {
                options.AllowClientGeneratedIds             = true;
                options.DefaultAttrCapabilities             = AttrCapabilities.All;
                options.DefaultPageSize                     = new PageSize(int.MaxValue);
                options.LoadDatabaseValues                  = true;
                options.IncludeExceptionStackTraceInErrors  = true;
                options.SerializerSettings.ContractResolver = new DefaultContractResolver
                {
                    NamingStrategy = new KebabCaseNamingStrategy()
                };
            }, discovery => discovery.AddCurrentAssembly());

            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc("v1", new OpenApiInfo {
                    Title = "Knowledge Shell API", Version = "v1"
                });
                options.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme
                {
                    Name         = "Authorization",
                    Scheme       = "Bearer",
                    BearerFormat = "JWT",
                    In           = ParameterLocation.Header,
                    Type         = SecuritySchemeType.Http,
                });
                options.AddSecurityRequirement(new OpenApiSecurityRequirement
                {
                    {
                        new OpenApiSecurityScheme
                        {
                            Reference = new OpenApiReference
                            {
                                Type = ReferenceType.SecurityScheme,
                                Id   = "Bearer"
                            }
                        },
                        new string[] { }
                    }
                });
            });

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>
            {
                options.RequireHttpsMetadata = false;
                var signingKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["SecretKey"]));
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateIssuerSigningKey = true,

                    ValidateIssuer   = false,
                    ValidateAudience = false,
                    IssuerSigningKey = signingKey,
                };
            });

            ServiceConfiguration.ConfigureServices(services);
        }
Пример #16
0
        // This method gets called by the runtime. Use this method to add services to the container.
        // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
        public void ConfigureServices(IServiceCollection services)
        {
            ServiceConfiguration.ConfigureServices(services, configuration);

            services.AddLogging(loggingBuilder => loggingBuilder.AddSerilog(dispose: true));
        }