using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using skydiveLogs_api.DomainBusiness; using skydiveLogs_api.DomainBusiness.Interfaces; using skydiveLogs_api.DomainService.Repositories; using skydiveLogs_api.Infrastructure; using skydiveLogs_api.Infrastructure.Interfaces; namespace skydiveLogs_api.Ioc { public class IocService { #region Public Constructors public IocService(IServiceCollection services, IConfiguration configuration) { _services = services; _configuration = configuration; } #endregion Public Constructors #region Public Methods public void Configure() { _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddSingleton(); _services.AddScoped(); _services.AddScoped(s => s.GetService()?.HttpContext.User); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); _services.AddScoped(); string connectionString = _configuration.GetConnectionString("DefaultConnection"); _services.AddSingleton(c => new LiteDbProvider(connectionString)); } #endregion Public Methods #region Private Fields private readonly IConfiguration _configuration; private readonly IServiceCollection _services; #endregion Private Fields } }