83 lines
5.5 KiB
C#
83 lines
5.5 KiB
C#
using DigitalData.UserManager.Application.MappingProfiles;
|
|
using EnvelopeGenerator.Application.Contracts;
|
|
using EnvelopeGenerator.Application.MappingProfiles;
|
|
using EnvelopeGenerator.Application.Configurations;
|
|
using EnvelopeGenerator.Application.Services;
|
|
using EnvelopeGenerator.Infrastructure.Contracts;
|
|
using EnvelopeGenerator.Infrastructure.Repositories;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
using DigitalData.Core.Client;
|
|
using EnvelopeGenerator.Application.Configurations.GtxMessaging;
|
|
using QRCoder;
|
|
|
|
namespace EnvelopeGenerator.Application.Extensions
|
|
{
|
|
public static class DIExtensions
|
|
{
|
|
public static IServiceCollection AddEnvelopeGenerator(this IServiceCollection services, IConfigurationSection dispatcherConfigSection, IConfigurationSection mailConfigSection, IConfigurationSection smsConfigSection, IConfigurationSection codeGeneratorConfigSection, IConfigurationSection envelopeReceiverCacheParamsSection, IConfigurationSection totpSmsParamsSection, IConfiguration config)
|
|
{
|
|
//Inject CRUD Service and repositoriesad
|
|
services.TryAddScoped<IConfigRepository, ConfigRepository>();
|
|
services.TryAddScoped<IDocumentReceiverElementRepository, DocumentReceiverElementRepository>();
|
|
services.TryAddScoped<IEnvelopeDocumentRepository, EnvelopeDocumentRepository>();
|
|
services.TryAddScoped<IConfigRepository, ConfigRepository>();
|
|
services.TryAddScoped<IDocumentReceiverElementRepository, DocumentReceiverElementRepository>();
|
|
services.TryAddScoped<IDocumentStatusRepository, DocumentStatusRepository>();
|
|
services.TryAddScoped<IEmailTemplateRepository, EmailTemplateRepository>();
|
|
services.TryAddScoped<IEnvelopeRepository, EnvelopeRepository>();
|
|
services.TryAddScoped<IEnvelopeCertificateRepository, EnvelopeCertificateRepository>();
|
|
services.TryAddScoped<IEnvelopeDocumentRepository, EnvelopeDocumentRepository>();
|
|
services.TryAddScoped<IEnvelopeHistoryRepository, EnvelopeHistoryRepository>();
|
|
services.TryAddScoped<IEnvelopeReceiverRepository, EnvelopeReceiverRepository>();
|
|
services.TryAddScoped<IEnvelopeTypeRepository, EnvelopeTypeRepository>();
|
|
services.TryAddScoped<IReceiverRepository, ReceiverRepository>();
|
|
services.TryAddScoped<IUserReceiverRepository, UserReceiverRepository>();
|
|
services.TryAddScoped<IEnvelopeReceiverReadOnlyRepository, EnvelopeReceiverReadOnlyRepository>();
|
|
services.TryAddScoped<IConfigService, ConfigService>();
|
|
services.TryAddScoped<IDocumentReceiverElementService, DocumentReceiverElementService>();
|
|
services.TryAddScoped<IEnvelopeDocumentService, EnvelopeDocumentService>();
|
|
services.TryAddScoped<IEnvelopeHistoryService, EnvelopeHistoryService>();
|
|
services.TryAddScoped<IDocumentStatusService, DocumentStatusService>();
|
|
services.TryAddScoped<IEmailTemplateService, EmailTemplateService>();
|
|
services.TryAddScoped<IEnvelopeService, EnvelopeService>();
|
|
services.TryAddScoped<IEnvelopeCertificateService, EnvelopeCertificateService>();
|
|
services.TryAddScoped<IEnvelopeDocumentService, EnvelopeDocumentService>();
|
|
services.TryAddScoped<IEnvelopeReceiverService, EnvelopeReceiverService>();
|
|
services.TryAddScoped<IEnvelopeTypeService, EnvelopeTypeService>();
|
|
services.TryAddScoped<IReceiverService, ReceiverService>();
|
|
services.TryAddScoped<IUserReceiverService, UserReceiverService>();
|
|
services.TryAddScoped<IEnvelopeReceiverReadOnlyService, EnvelopeReceiverReadOnlyService>();
|
|
|
|
//Auto mapping profiles
|
|
services.AddAutoMapper(typeof(BasicDtoMappingProfile).Assembly);
|
|
services.AddAutoMapper(typeof(UserMappingProfile).Assembly);
|
|
|
|
services.Configure<DispatcherConfig>(dispatcherConfigSection);
|
|
services.Configure<MailConfig>(mailConfigSection);
|
|
services.Configure<CodeGeneratorParams>(codeGeneratorConfigSection);
|
|
services.Configure<EnvelopeReceiverCacheParams>(envelopeReceiverCacheParamsSection);
|
|
services.Configure<TotpSmsParams>(totpSmsParamsSection);
|
|
|
|
services.AddHttpClientService<SmsParams>(smsConfigSection);
|
|
services.TryAddSingleton<ISmsSender, GTXSmsSender>();
|
|
services.TryAddSingleton<IEnvelopeSmsService, EnvelopeSmsService>();
|
|
services.TryAddSingleton<ICodeGenerator, CodeGenerator>();
|
|
services.TryAddSingleton<QRCodeGenerator>();
|
|
|
|
return services;
|
|
}
|
|
|
|
public static IServiceCollection Configure<T>(this IServiceCollection services, IConfiguration configuration) => services
|
|
.Configure<T>(configuration.GetSection(nameof(T)));
|
|
|
|
public static IServiceCollection AddEnvelopeGenerator(this IServiceCollection services, IConfiguration config) => services.AddEnvelopeGenerator(
|
|
dispatcherConfigSection: config.GetSection("DispatcherConfig"),
|
|
mailConfigSection: config.GetSection("MailConfig"),
|
|
smsConfigSection: config.GetSection("SmsConfig"),
|
|
codeGeneratorConfigSection: config.GetSection("CodeGeneratorParams"),
|
|
envelopeReceiverCacheParamsSection: config.GetSection("EnvelopeReceiverCacheParams"),
|
|
totpSmsParamsSection: config.GetSection("TotpSmsParams"), config);
|
|
}
|
|
} |