1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-12 16:48:12 -05:00

move repos and services reg out to core extensions

This commit is contained in:
Kyle Spearrin 2017-04-26 16:13:24 -04:00
parent f116977498
commit 3a5f667683
3 changed files with 65 additions and 24 deletions

View File

@ -13,9 +13,6 @@ using Bit.Api.Utilities;
using Bit.Core;
using Bit.Core.Models.Table;
using Bit.Core.Identity;
using Bit.Core.Repositories;
using Bit.Core.Services;
using SqlServerRepos = Bit.Core.Repositories.SqlServer;
using System.Text;
using System.Linq;
using Microsoft.AspNetCore.Mvc.Formatters;
@ -88,16 +85,7 @@ namespace Bit.Api
StripeConfiguration.SetApiKey(globalSettings.StripeApiKey);
// Repositories
services.AddSingleton<IUserRepository, SqlServerRepos.UserRepository>();
services.AddSingleton<ICipherRepository, SqlServerRepos.CipherRepository>();
services.AddSingleton<IDeviceRepository, SqlServerRepos.DeviceRepository>();
services.AddSingleton<IGrantRepository, SqlServerRepos.GrantRepository>();
services.AddSingleton<IOrganizationRepository, SqlServerRepos.OrganizationRepository>();
services.AddSingleton<IOrganizationUserRepository, SqlServerRepos.OrganizationUserRepository>();
services.AddSingleton<ISubvaultRepository, SqlServerRepos.SubvaultRepository>();
services.AddSingleton<ISubvaultUserRepository, SqlServerRepos.SubvaultUserRepository>();
services.AddSingleton<IFolderRepository, SqlServerRepos.FolderRepository>();
services.AddSingleton<ISubvaultCipherRepository, SqlServerRepos.SubvaultCipherRepository>();
services.AddSqlServerRepositories();
// Context
services.AddScoped<CurrentContext>();
@ -195,14 +183,8 @@ namespace Bit.Api
services.AddScoped<AuthenticatorTokenProvider>();
// Services
services.AddSingleton<IMailService, SendGridMailService>();
services.AddSingleton<ICipherService, CipherService>();
services.AddScoped<IUserService, UserService>();
services.AddScoped<IPushService, PushSharpPushService>();
services.AddScoped<IDeviceService, DeviceService>();
services.AddScoped<IBlockIpService, AzureQueueBlockIpService>();
services.AddScoped<IOrganizationService, OrganizationService>();
services.AddScoped<ISubvaultService, SubvaultService>();
services.AddBaseServices();
services.AddDefaultServices();
// Cors
services.AddCors(config =>

View File

@ -8,6 +8,7 @@ using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Bit.Core;
using Stripe;
namespace Bit.Billing
{
@ -38,11 +39,22 @@ namespace Bit.Billing
services.AddOptions();
// Settings
//var globalSettings = new GlobalSettings();
//ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), globalSettings);
//services.AddSingleton(s => globalSettings);
var globalSettings = new GlobalSettings();
ConfigurationBinder.Bind(Configuration.GetSection("GlobalSettings"), globalSettings);
services.AddSingleton(s => globalSettings);
services.Configure<BillingSettings>(Configuration.GetSection("BillingSettings"));
// Stripe Billing
StripeConfiguration.SetApiKey(globalSettings.StripeApiKey);
// Repositories
services.AddSqlServerRepositories();
// Services
services.AddBaseServices();
services.AddDefaultServices();
// Mvc
services.AddMvc();
}

View File

@ -0,0 +1,47 @@
using Bit.Core.Repositories;
using Bit.Core.Services;
using Microsoft.Extensions.DependencyInjection;
using SqlServerRepos = Bit.Core.Repositories.SqlServer;
namespace Bit.Core
{
public static class ServiceCollectionExtensions
{
public static void AddSqlServerRepositories(this IServiceCollection services)
{
services.AddSingleton<IUserRepository, SqlServerRepos.UserRepository>();
services.AddSingleton<ICipherRepository, SqlServerRepos.CipherRepository>();
services.AddSingleton<IDeviceRepository, SqlServerRepos.DeviceRepository>();
services.AddSingleton<IGrantRepository, SqlServerRepos.GrantRepository>();
services.AddSingleton<IOrganizationRepository, SqlServerRepos.OrganizationRepository>();
services.AddSingleton<IOrganizationUserRepository, SqlServerRepos.OrganizationUserRepository>();
services.AddSingleton<ISubvaultRepository, SqlServerRepos.SubvaultRepository>();
services.AddSingleton<ISubvaultUserRepository, SqlServerRepos.SubvaultUserRepository>();
services.AddSingleton<IFolderRepository, SqlServerRepos.FolderRepository>();
services.AddSingleton<ISubvaultCipherRepository, SqlServerRepos.SubvaultCipherRepository>();
}
public static void AddBaseServices(this IServiceCollection services)
{
services.AddSingleton<ICipherService, CipherService>();
services.AddScoped<IUserService, UserService>();
services.AddScoped<IDeviceService, DeviceService>();
services.AddScoped<IOrganizationService, OrganizationService>();
services.AddScoped<ISubvaultService, SubvaultService>();
}
public static void AddDefaultServices(this IServiceCollection services)
{
services.AddSingleton<IMailService, SendGridMailService>();
services.AddScoped<IPushService, PushSharpPushService>();
services.AddScoped<IBlockIpService, AzureQueueBlockIpService>();
}
public static void AddNoopServices(this IServiceCollection services)
{
services.AddSingleton<IMailService, NoopMailService>();
services.AddScoped<IPushService, NoopPushService>();
services.AddScoped<IBlockIpService, NoopBlockIpService>();
}
}
}