public static void LoadModules(IServiceCollection services, IConfiguration configuration) { ApplicationInsightsModule.Load(services, configuration); FactoriesModule.Load(services); ServicesModule.Load(services); RepositoriesModule.Load(services, configuration); CommonModule.Load(services); }
/// <summary> /// Configures the service container. /// </summary> /// <param name="services">The service container.</param> public void ConfigureServices(IServiceCollection services) { services.AddMemoryCache(); // Enabled CORS to allow access from browser applications on different domains. services.AddCors(); // Configure the API and JSON behaviour. services.AddMvc(options => { options.InputFormatters.RemoveType <JsonPatchInputFormatter>(); options.OutputFormatters.RemoveType <StringOutputFormatter>(); options.Filters.Add(new ParameterValidationFilter()); options.Filters.Add(new ModelStateValidationFilter()); options.Filters.Add(new EntityNotFoundExceptionFilter()); options.Filters.Add(new InvalidTradeExceptionFilter()); options.Filters.Add(new ValidationExceptionFilter()); }) .AddJsonOptions(options => { options.SerializerSettings.Converters.Add(new StringEnumConverter()); options.SerializerSettings.Converters.Add(new OnlyDateConverter()); options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore; }); // Configure JWT authentication. services.AddAuthentication(options => { options.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuerSigningKey = true, IssuerSigningKey = JwtSettings.SecurtyKey, ValidIssuer = JwtSettings.Issuer, ValidAudiences = new[] { JwtSettings.InvestorAudience, JwtSettings.AdministratorAudience } }; }); // Configure Authorization to prevent investor users from using admin features. services.AddAuthorization(options => { options.AddPolicy( AuthorizationPolicies.Administrators, policy => policy.RequireClaim(JwtRegisteredClaimNames.Aud, JwtSettings.AdministratorAudience)); }); // Enable Swagger and Swagger UI to make exploration of the API easier. services.AddSwaggerGen(SwaggerConfig.Configure); // Register the components from all modules in the dependency injection container. DomainModule.ConfigureServices(services); RepositoriesModule.ConfigureServices(services); AsxModule.ConfigureServices(services); YahooModule.ConfigureServices(services); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddControllers(); services.AddControllersWithViews() .AddNewtonsoftJson(options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore ); ServiceModule.RegisterModule(services); RepositoriesModule.RegisterModule(services); services.AddMemoryCache(); services.AddSpaStaticFiles(configuration => { configuration.RootPath = "ClientApp/build"; }); }
public void ConfigureServices(IServiceCollection services) { RepositoriesModule.RegisterDependencies(services, Configuration); ServicesModule.RegisterDependencies(services); services.AddCors(options => { options.AddPolicy(BudgetPolicy, builder => { builder.WithOrigins("http://localhost:4200") .AllowAnyHeader() .AllowCredentials() .AllowAnyMethod(); }); }); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ClockSkew = TimeSpan.Zero, ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = Configuration["Jwt:Issuer"], ValidAudience = Configuration["Jwt:Issuer"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Secret"])) }; }); services.AddHttpContextAccessor(); services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.Converters.Add(new DateTimeConverter()); }); }
public void ConfigureServices(IServiceCollection services) { RepositoriesModule.RegisterDependencies(services, Configuration); ServicesModule.RegisterDependencies(services); services.AddCors(options => { options.AddPolicy(RestaurantRaterPolicy, builder => { builder.WithOrigins("http://localhost:4200") .AllowAnyHeader() .AllowAnyMethod(); }); }); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ClockSkew = TimeSpan.Zero, ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = Configuration["Jwt:Issuer"], ValidAudience = Configuration["Jwt:Issuer"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Secret"])) }; }); services.AddHttpContextAccessor(); services.AddControllers().AddNewtonsoftJson(options => { options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc; options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; }); }
public RepositoriesModuleTests() { _instance = new RepositoriesModule(); }
public void ConfigureServices(IServiceCollection services) { SystemModule.RegisterDependencies(services); RepositoriesModule.RegisterDependencies(services, Configuration); ServicesModule.RegisterDependencies(services); services.AddAuthorization(options => { // Categories options.AddPolicy(AccountPermissions.Categories.View, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Categories.View)); }); options.AddPolicy(AccountPermissions.Categories.Add, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Categories.Add)); }); options.AddPolicy(AccountPermissions.Categories.Edit, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Categories.Edit)); }); options.AddPolicy(AccountPermissions.Categories.Delete, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Categories.Delete)); }); // Invitations options.AddPolicy(AccountPermissions.Invitations.View, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Invitations.View)); }); options.AddPolicy(AccountPermissions.Invitations.Add, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Invitations.Add)); }); options.AddPolicy(AccountPermissions.Invitations.Edit, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Invitations.Edit)); }); options.AddPolicy(AccountPermissions.Invitations.Delete, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Invitations.Delete)); }); // Tags options.AddPolicy(AccountPermissions.Tags.View, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Tags.View)); }); options.AddPolicy(AccountPermissions.Tags.Add, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Tags.Add)); }); options.AddPolicy(AccountPermissions.Tags.Edit, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Tags.Edit)); }); options.AddPolicy(AccountPermissions.Tags.Delete, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Tags.Delete)); }); // Transactions options.AddPolicy(AccountPermissions.Transactions.View, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Transactions.View)); }); options.AddPolicy(AccountPermissions.Transactions.Add, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Transactions.Add)); }); options.AddPolicy(AccountPermissions.Transactions.Edit, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Transactions.Edit)); }); options.AddPolicy(AccountPermissions.Transactions.Delete, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Transactions.Delete)); }); // Account options.AddPolicy(AccountPermissions.Account.View, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Account.View)); }); options.AddPolicy(AccountPermissions.Account.Edit, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Account.Edit)); }); options.AddPolicy(AccountPermissions.Account.Delete, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.Account.Delete)); }); // Account users options.AddPolicy(AccountPermissions.AccountUsers.View, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.AccountUsers.View)); }); options.AddPolicy(AccountPermissions.AccountUsers.Delete, builder => { builder.AddRequirements(new AccountPermissionRequirement(AccountPermissions.AccountUsers.Delete)); }); }); services.AddCors(options => { options.AddPolicy(BudgetManagerPolicy, builder => { builder.WithOrigins("http://localhost:4200") .AllowAnyHeader() .AllowAnyMethod(); }); }); services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options => { options.TokenValidationParameters = new TokenValidationParameters { ClockSkew = TimeSpan.Zero, ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = Configuration["Jwt:Issuer"], ValidAudience = Configuration["Jwt:Issuer"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(Configuration["Jwt:Secret"])) }; }); services.AddHttpContextAccessor(); services.AddControllers().AddNewtonsoftJson(options => { options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc; options.SerializerSettings.DateFormatString = "yyyy-MM-dd"; }); }