Dependencyinjection.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Microsoft.Extensions.DependencyInjection;
  2. using Microsoft.Extensions.Configuration;
  3. using AipGateway.API.Application.Modules;
  4. using AipGateway.API.Infrastructure;
  5. using AipGateway.API.Application.Pipeline.Authorization;
  6. using AipGateway.API.Application.UtilityServices;
  7. using System.Reflection;
  8. using FluentValidation;
  9. using AipGateway.API.Application.Pipeline.Middlewares.Logging;
  10. using Microsoft.Extensions.Logging;
  11. namespace AipGateway.API.Domain
  12. {
  13. public static class Dependencyinjection
  14. {
  15. public static IServiceCollection InjectDependencies(this IServiceCollection services, IConfiguration configuration)
  16. {
  17. services.AddJWTAuthorization(configuration)
  18. .AddRolePermissionAuthorization();
  19. services.AddDomainLayerServices()
  20. .AddInfrastructureLayerServices(configuration)
  21. .AddApplicationLayerServices();
  22. ServiceContainer.provider = services.BuildServiceProvider();
  23. ILoggerFactory loggerFactory = ServiceContainer.provider.GetService<ILoggerFactory>();
  24. ILogger<LoggingDbProcess> logger = loggerFactory.CreateLogger<LoggingDbProcess>();
  25. ServiceContainer.loggingDbProcess = new LoggingDbProcess(logger);
  26. return services;
  27. }
  28. private static ILogger<T> CreateLogger<T>(ILoggerFactory factory)
  29. {
  30. return new Logger<T>(factory);
  31. }
  32. public static IServiceCollection AddApplicationLayerServices(this IServiceCollection services)
  33. {
  34. services//.AddAutoMapper(Assembly.GetExecutingAssembly())
  35. .AddValidatorsFromAssembly(Assembly.GetExecutingAssembly());
  36. services.AddModules()
  37. .UtilityServices();
  38. return services;
  39. }
  40. }
  41. }