using System.Reflection; using Kurs.Sender; using Kurs.MailQueue.Domain.Shared; using Kurs.MailQueue.EntityFrameworkCore; 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; namespace Kurs.MailQueue; [DependsOn( typeof(AbpDddDomainModule), typeof(AbpDddApplicationModule), typeof(AbpDddApplicationContractsModule), typeof(AbpAutoMapperModule), typeof(AbpAuthorizationModule), typeof(AbpEntityFrameworkCoreModule), typeof(AbpTextTemplatingRazorModule), typeof(KursSenderModule) )] public class KursMailQueueModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) { context.Services.AddAutoMapperObjectMapper(); Configure(options => { options.AddMaps(validate: true); }); Configure(options => { options.Resources.Add("en"); }); Configure(options => { options.MapCodeNamespace("MailQueue", typeof(KursMailQueueResource)); }); context.Services.AddAbpDbContext(options => { options.AddDefaultRepositories(includeAllEntities: true); }); Configure(options => { options.References.Add(MetadataReference.CreateFromFile(typeof(KursMailQueueModule).Assembly.Location)); }); Configure(options => { //Hello is template name. options.TemplateReferences.Add("Hello", new List() { Assembly.Load("Microsoft.Extensions.Logging.Abstractions"), Assembly.Load("Microsoft.Extensions.Logging") } .Select(x => MetadataReference.CreateFromFile(x.Location)) .ToList()); }); // FileGenerationModule Configure(options => { options.FileSets.AddEmbedded(); }); context.Services.AddWkhtmltopdf($"FileGeneration{Path.DirectorySeparatorChar}Rotativa"); // FileGenerationModule } }