using System; using Microsoft.Extensions.DependencyInjection; using AyaNova.Models; namespace AyaNova.Util { /// /// Shared service provider for static classes /// internal static class ServiceProviderProvider { private static IServiceProvider _provider; internal static IServiceProvider Provider { get { return _provider; } set { _provider = value; } } internal static IServiceScope Scope { get { return Provider.CreateScope(); } } internal static AyContext DBContext { get { return Scope.ServiceProvider.GetRequiredService(); } } internal static AyaNova.Api.ControllerHelpers.ApiServerState ServerState { get { return Scope.ServiceProvider.GetRequiredService(); } } internal static AyaNova.Util.IMailer Mailer { get { return Scope.ServiceProvider.GetRequiredService(); } } // https://docs.microsoft.com/en-us/aspnet/core/fundamentals/http-requests?view=aspnetcore-3.1 internal static System.Net.Http.IHttpClientFactory HttpClientFactory { get { return Scope.ServiceProvider.GetRequiredService(); } } } }