DependencyInjection.cs for Infrastructure layer
This commit is contained in:
		
							
								
								
									
										33
									
								
								SchengenVisaApi/Infrastructure/DependencyInjection.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								SchengenVisaApi/Infrastructure/DependencyInjection.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | |||||||
|  | using Infrastructure.Database; | ||||||
|  | using Infrastructure.Database.Applicants.Repositories; | ||||||
|  | using Infrastructure.Database.Generic; | ||||||
|  | using Infrastructure.Database.Locations.Repositories.Cities; | ||||||
|  | using Infrastructure.Database.Locations.Repositories.Countries; | ||||||
|  | using Infrastructure.Database.VisaApplications.Repositories; | ||||||
|  | using Microsoft.EntityFrameworkCore; | ||||||
|  | using Microsoft.Extensions.DependencyInjection; | ||||||
|  | using DbContext = Infrastructure.Database.DbContext; | ||||||
|  |  | ||||||
|  | namespace Infrastructure | ||||||
|  | { | ||||||
|  |     public static class DependencyInjection | ||||||
|  |     { | ||||||
|  |         public static IServiceCollection AddInfrastructure(this IServiceCollection services) | ||||||
|  |         { | ||||||
|  |             //TODO строка подключения | ||||||
|  |             services.AddDbContext<DbContext>(opts => | ||||||
|  |                 opts.UseSqlServer("Data Source=(localdb)\\MSSQLLocalDB;Initial Catalog=visadb;Integrated Security=True;")); | ||||||
|  |  | ||||||
|  |             services.AddScoped<IGenericReader>(serviceProvider => serviceProvider.GetRequiredService<DbContext>()); | ||||||
|  |             services.AddScoped<IGenericWriter>(serviceProvider => serviceProvider.GetRequiredService<DbContext>()); | ||||||
|  |             services.AddScoped<IUnitOfWork>(serviceProvider => serviceProvider.GetRequiredService<DbContext>()); | ||||||
|  |  | ||||||
|  |             services.AddScoped<IApplicantsRepository, ApplicantsRepository>(); | ||||||
|  |             services.AddScoped<IVisaApplicationsRepository, VisaApplicationsRepository>(); | ||||||
|  |             services.AddScoped<ICitiesRepository, CitiesRepository>(); | ||||||
|  |             services.AddScoped<ICountriesRepository, CountriesRepository>(); | ||||||
|  |  | ||||||
|  |             return services; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @@ -13,6 +13,7 @@ | |||||||
|     <ItemGroup> |     <ItemGroup> | ||||||
|       <PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.0-preview.7.24405.3" /> |       <PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.0-preview.7.24405.3" /> | ||||||
|       <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.0-preview.7.24405.3" /> |       <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="9.0.0-preview.7.24405.3" /> | ||||||
|  |       <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.0-preview.7.24405.3" /> | ||||||
|     </ItemGroup> |     </ItemGroup> | ||||||
|  |  | ||||||
| </Project> | </Project> | ||||||
|   | |||||||
| @@ -1,4 +1,5 @@ | |||||||
| using System.Reflection; | using System.Reflection; | ||||||
|  | using Infrastructure; | ||||||
|  |  | ||||||
| namespace SchengenVisaApi | namespace SchengenVisaApi | ||||||
| { | { | ||||||
| @@ -7,6 +8,15 @@ namespace SchengenVisaApi | |||||||
|     { |     { | ||||||
|         /// Add needed services |         /// Add needed services | ||||||
|         public static IServiceCollection RegisterServices(this IServiceCollection services) |         public static IServiceCollection RegisterServices(this IServiceCollection services) | ||||||
|  |         { | ||||||
|  |             services | ||||||
|  |                 .AddPresentation() | ||||||
|  |                 .AddInfrastructure(); | ||||||
|  |  | ||||||
|  |             return services; | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         private static IServiceCollection AddPresentation(this IServiceCollection services) | ||||||
|         { |         { | ||||||
|             services.AddControllers(); |             services.AddControllers(); | ||||||
|             services.AddEndpointsApiExplorer(); |             services.AddEndpointsApiExplorer(); | ||||||
|   | |||||||
| @@ -14,6 +14,7 @@ | |||||||
|  |  | ||||||
|     <ItemGroup> |     <ItemGroup> | ||||||
|       <ProjectReference Include="..\ApplicationLayer\ApplicationLayer.csproj" /> |       <ProjectReference Include="..\ApplicationLayer\ApplicationLayer.csproj" /> | ||||||
|  |       <ProjectReference Include="..\Infrastructure\Infrastructure.csproj" /> | ||||||
|     </ItemGroup> |     </ItemGroup> | ||||||
|  |  | ||||||
| </Project> | </Project> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user