using System; using System.Collections.Concurrent; using System.Text; using Abp.Dependency; using Abp.IO.Extensions; using Abp.Reflection.Extensions; using IwbZeroCore.Net.Emailing; namespace ShwasherSys.Emailing { public class EmailTemplateProvider : IEmailTemplateProvider, ISingletonDependency { //private readonly IWebUrlService _webUrlService; private readonly ConcurrentDictionary _defaultTemplates; public EmailTemplateProvider() { //_webUrlService = webUrlService; _defaultTemplates = new ConcurrentDictionary(); } public string GetDefaultTemplate(int? tenantId) { var tenancyKey = tenantId.HasValue ? tenantId.Value.ToString() : "host"; return _defaultTemplates.GetOrAdd(tenancyKey, key => { using (var stream = typeof(EmailTemplateProvider).GetAssembly().GetManifestResourceStream("ShwasherSys.Emailing.EmailTemplates.default.html")) { var bytes = stream.GetAllBytes(); var template = Encoding.UTF8.GetString(bytes, 3, bytes.Length - 3); template = template.Replace("{THIS_YEAR}", DateTime.Now.Year.ToString()); return template.Replace("{EMAIL_LOGO_URL}", GetTenantLogoUrl(tenantId)); } }); } private string GetTenantLogoUrl(int? tenantId) { return ""; //_webUrlService.GetServerRootAddress().EnsureEndsWith('/') + "img/logo.png"; //if (!tenantId.HasValue) //{ // return _webUrlService.GetServerRootAddress().EnsureEndsWith('/') + "img/logo/logo.png"; //} //var tenant = _tenantCache.Get(tenantId.Value); //return _webUrlService.GetServerRootAddress(tenant.TenancyName).EnsureEndsWith('/') + "img/logo/" + tenantId.Value+ "/logo.png"; } } }