erp-platform/api/modules/Erp.MailQueue/ErpMailQueueModule.cs

84 lines
2.6 KiB
C#
Raw Permalink Normal View History

2025-05-06 06:45:49 +00:00
using System.Reflection;
2025-11-11 19:49:52 +00:00
using Erp.Sender;
using Erp.MailQueue.Domain.Shared;
using Erp.MailQueue.EntityFrameworkCore;
2025-05-06 06:45:49 +00:00
using Microsoft.CodeAnalysis;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Application;
using Volo.Abp.Authorization;
using Volo.Abp.AutoMapper;
using Volo.Abp.Domain;
using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.Localization;
using Volo.Abp.Localization.ExceptionHandling;
using Volo.Abp.Modularity;
using Volo.Abp.TextTemplating.Razor;
using Volo.Abp.VirtualFileSystem;
using Wkhtmltopdf.NetCore;
2025-11-11 19:49:52 +00:00
namespace Erp.MailQueue;
2025-05-06 06:45:49 +00:00
[DependsOn(
typeof(AbpDddDomainModule),
typeof(AbpDddApplicationModule),
typeof(AbpDddApplicationContractsModule),
typeof(AbpAutoMapperModule),
typeof(AbpAuthorizationModule),
typeof(AbpEntityFrameworkCoreModule),
typeof(AbpTextTemplatingRazorModule),
2025-11-11 19:49:52 +00:00
typeof(ErpSenderModule)
2025-05-06 06:45:49 +00:00
)]
2025-11-11 19:49:52 +00:00
public class ErpMailQueueModule : AbpModule
2025-05-06 06:45:49 +00:00
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
2025-11-11 19:49:52 +00:00
context.Services.AddAutoMapperObjectMapper<ErpMailQueueModule>();
2025-05-06 06:45:49 +00:00
Configure<AbpAutoMapperOptions>(options =>
{
2025-11-11 19:49:52 +00:00
options.AddMaps<ErpMailQueueModule>(validate: true);
2025-05-06 06:45:49 +00:00
});
Configure<AbpLocalizationOptions>(options =>
{
2025-11-11 19:49:52 +00:00
options.Resources.Add<ErpMailQueueResource>("en");
2025-05-06 06:45:49 +00:00
});
Configure<AbpExceptionLocalizationOptions>(options =>
{
2025-11-11 19:49:52 +00:00
options.MapCodeNamespace("MailQueue", typeof(ErpMailQueueResource));
2025-05-06 06:45:49 +00:00
});
context.Services.AddAbpDbContext<MailQueueDbContext>(options =>
{
options.AddDefaultRepositories(includeAllEntities: true);
});
Configure<AbpRazorTemplateCSharpCompilerOptions>(options =>
{
2025-11-11 19:49:52 +00:00
options.References.Add(MetadataReference.CreateFromFile(typeof(ErpMailQueueModule).Assembly.Location));
2025-05-06 06:45:49 +00:00
});
Configure<AbpCompiledViewProviderOptions>(options =>
{
//Hello is template name.
options.TemplateReferences.Add("Hello", new List<Assembly>()
{
Assembly.Load("Microsoft.Extensions.Logging.Abstractions"),
Assembly.Load("Microsoft.Extensions.Logging")
}
.Select(x => MetadataReference.CreateFromFile(x.Location))
.ToList());
});
// FileGenerationModule
Configure<AbpVirtualFileSystemOptions>(options =>
{
2025-11-11 19:49:52 +00:00
options.FileSets.AddEmbedded<ErpMailQueueModule>();
2025-05-06 06:45:49 +00:00
});
context.Services.AddWkhtmltopdf($"FileGeneration{Path.DirectorySeparatorChar}Rotativa");
// FileGenerationModule
}
}
2025-11-11 19:49:52 +00:00