Esempio n. 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider 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;
            });

            ServiceRegistration.Register(services);

            services.AddSingleton <IHttpContextAccessor, HttpContextAccessor>();
            services.AddReact();
            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Latest);

            var connection = @"Server=WS16-SQL-CHL02\SQL2012;Database=TestDb;Trusted_Connection=True;ConnectRetryCount=0";

            services.AddDbContext <DataBaseContext>(options => options.UseSqlServer(connection));
            services.AddEntityFrameworkSqlServer();

            services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme)
            .AddCookie(options =>
            {
                options.ExpireTimeSpan = TimeSpan.FromHours(2);
                options.LoginPath      = "/User/SignIn";
                options.LogoutPath     = "/User/SignOut";
                //options.AccessDeniedPath
            });

            return(services.BuildServiceProvider());
        }
Esempio n. 2
0
        public static void Register(HttpConfiguration config)
        {
            // Web API configuration and services registration

            var container = new UnityContainer();

            var dataAccessRegistration = new DataAccessRegistration();
            var repositoryRegistation = new RepositoryRegistration();
            var serviceRegistration = new ServiceRegistration();

            dataAccessRegistration.Register(container);
            repositoryRegistation.Register(container);
            serviceRegistration.Register(container);

            config.DependencyResolver = new UnityResolver(container);

            config.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            config.Formatters.JsonFormatter.UseDataContractJsonSerializer = false;

            // Web API routes
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
Esempio n. 3
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            ServiceRegistration.Register(services);

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
            .AddJwtBearer(options =>     // добавляется конфигурация токена
            {
                options.RequireHttpsMetadata      = false;
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    // укзывает, будет ли валидироваться издатель при валидации токена
                    ValidateIssuer = true,
                    // строка, представляющая издателя
                    ValidIssuer = AuthOptions.ISSUER,

                    // будет ли валидироваться потребитель токена
                    ValidateAudience = true,
                    // установка потребителя токена
                    ValidAudience = AuthOptions.AUDIENCE,
                    // будет ли валидироваться время существования
                    ValidateLifetime = true,

                    // установка ключа безопасности
                    IssuerSigningKey = AuthOptions.GetSymmetricSecurityKey(),
                    // валидация ключа безопасности
                    ValidateIssuerSigningKey = true,
                };
            });

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Latest);

            var connection = @"Server=WS16-SQL-CHL02\SQL2012;Database=TestDb;Trusted_Connection=True;ConnectRetryCount=0";

            services.AddDbContext <DataBaseContext>(options => options.UseSqlServer(connection));
            services.AddEntityFrameworkSqlServer();

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Version = "v1", Title = "My API"
                });

                var security = new Dictionary <string, IEnumerable <string> >
                {
                    { "Bearer", new string[] { } },
                };

                c.AddSecurityDefinition("Bearer", new ApiKeyScheme
                {
                    Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
                    Name        = "Authorization",
                    In          = "header",
                    Type        = "apiKey"
                });
            });

            return(services.BuildServiceProvider());
        }
Esempio n. 4
0
        public void Cant_register_open_generics_with_instantiation_delegate()
        {
            var services = new ServiceCollection();

            var exception = Assert.Throws <NotSupportedException>(() =>
                                                                  ServiceRegistration.Register(services, new ServiceAttribute(typeof(IGenericService <>)),
                                                                                               typeof(GenericService <>), (provider, service, implementation) => new object()));

            exception.Message.Should().Be("Cannot provide delegate for instantiation for open generic types.");
        }
Esempio n. 5
0
 public static void Register(this Container container, AppSettings appSettings, LoggerSettings loggerSettings)
 {
     MediatorRegistration.Register(container);
     AutoMapperRegistration.Register(container);
     FactoryRegistration.Register(container);
     ServiceRegistration.Register(container);
     ValidationRegistration.Register(container);
     SettingsRegistration.Register(container, appSettings, loggerSettings);
     LoggingRegistration.Register(container);
     GCPRegistrations.Register(container);
 }
Esempio n. 6
0
        public void Can_declare_service_without_interface()
        {
            var services = new ServiceCollection();

            ServiceRegistration.Register(services, new ServiceAttribute(ServiceLifetime.Singleton), typeof(Service1), _mock.Object.Instantiate);

            services.Should().HaveCount(1);
            services[0].Lifetime.Should().Be(ServiceLifetime.Singleton);
            services[0].ServiceType.Should().Be(typeof(Service1));
            services[0].ImplementationType.Should().BeNull();

            var serviceProvider = services.BuildServiceProvider();

            serviceProvider.GetRequiredService <Service1>();

            _mock.Verify(x => x.Instantiate(It.IsAny <IServiceProvider>(), typeof(Service1), typeof(Service1)), Times.Once);
        }
Esempio n. 7
0
        public void Can_register_service_transient()
        {
            var services = new ServiceCollection();

            ServiceRegistration.Register(services, new ServiceAttribute(typeof(IService), ServiceLifetime.Transient),
                                         typeof(Service1), _mock.Object.Instantiate);

            services.Count.Should().Be(1);
            services[0].Lifetime.Should().Be(ServiceLifetime.Transient);

            var resolved = services.BuildServiceProvider().GetRequiredService <IService>();

            resolved.Should().BeAssignableTo <IService>();
            resolved.Should().BeAssignableTo <Service1>();

            _mock.Verify(x => x.Instantiate(It.IsAny <IServiceProvider>(), typeof(IService), typeof(Service1)), Times.Once);
        }
Esempio n. 8
0
        public async Task ItShouldReturnTheExpectedOutput()
        {
            var input          = "[{\"width\":100,\"length\":500,\"site_config\":{\"num_storeys\":0,\"site_coverage\":90,\"development_type\":\"subdivision\",\"avg_lot_size\":300}},{\"width\":50,\"length\":100,\"site_config\":{\"num_storeys\":3,\"site_coverage\":70,\"development_type\":\"apartment\",\"avg_apt_area\":74}},{\"width\":250,\"length\":700,\"site_config\":{\"num_storeys\":5,\"site_coverage\":70,\"development_type\":\"mixed_use\",\"avg_apt_area\":74,\"commerical_mix\":20,\"retail_mix\":70,\"residential_mix\":10}},{\"width\":250,\"length\":700,\"site_config\":{\"num_storeys\":20,\"site_coverage\":70,\"development_type\":\"commercial\",\"commerical_mix\":20,\"retail_mix\":70}},{\"width\":50,\"length\":100,\"site_config\":{\"num_storeys\":3,\"site_coverage\":70,\"development_type\":\"apartment\"}},{\"width\":20,\"length\":30,\"site_config\":{\"num_storeys\":2,\"site_coverage\":70,\"development_type\":\"apartment\",\"avg_apt_area\":90}},{\"width\":10,\"length\":50,\"site_config\":{\"num_storeys\":0,\"site_coverage\":90,\"development_type\":\"subdivision\",\"avg_lot_size\":450}},{\"width\":10,\"length\":50,\"site_config\":{\"num_storeys\":0,\"site_coverage\":90,\"development_type\":\"subdivision\",\"avg_lot_size\":500}}]";
            var expectedResult = new List <SiteResponse>();

            var serviceProvider = ServiceRegistration.Register();

            var service  = serviceProvider.GetService <IBuildingMetricsService>();
            var response = await service.Execute(new JsonOptions
            {
                Input = input
            });

            response.Should().NotBeNull();
            response.Count.Should().Be(8);
            //response.Should().BeEquivalentTo(expectedResult);
        }
Esempio n. 9
0
        public void Can_register_open_generics()
        {
            var services = new ServiceCollection();

            ServiceRegistration.Register(services, new ServiceAttribute(typeof(IGenericService <>)), typeof(GenericService <>));

            services.Should().HaveCount(1);

            services[0].ServiceType.Should().Be(typeof(IGenericService <>));

            var serviceProvider = services.BuildServiceProvider();

            var service1 = serviceProvider.GetRequiredService <IGenericService <string> >();

            service1.Should().BeAssignableTo <GenericService <string> >();
            var service2 = serviceProvider.GetRequiredService <IGenericService <int> >();

            service2.Should().BeAssignableTo <GenericService <int> >();
        }
Esempio n. 10
0
 // This method gets called by the runtime. Use this method to add services to the container.
 public void ConfigureServices(IServiceCollection services)
 {
     services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
     // Register the Swagger generator, defining 1 or more Swagger documents
     services.AddSwaggerGen(c =>
     {
         c.SwaggerDoc("v1", new OpenApiInfo {
             Title = "Remitter API", Version = "v1"
         });
     });
     JsonConvert.DefaultSettings = () => new JsonSerializerSettings
     {
         ContractResolver = new CamelCasePropertyNamesContractResolver()
     };
     //services.AddMemoryCache();
     ServiceRegistration.Register(services, Configuration);
     services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
     .AddJwtBearer(options =>
     {
         options.Authority = "{yourAuthorizationServerAddress}";
         options.Audience  = "{yourAudience}";
     });
 }
Esempio n. 11
0
 private static void ConfigureServices(HostBuilderContext arg1, IServiceCollection services)
 {
     ServiceRegistration.Register(services);
 }
 private static void RegisterServices(HostBuilderContext hostBuilderContext, IServiceCollection services)
 {
     ServiceRegistration.Register(hostBuilderContext, services);
 }