using System;
using Microsoft.Extensions.DependencyInjection;
using Sockeye.Models;
namespace Sockeye.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 Sockeye.Api.ControllerHelpers.ApiServerState ServerState
{
get
{
return Scope.ServiceProvider.GetRequiredService();
}
}
internal static Sockeye.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();
}
}
}
}