EmailTemplateProvider.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Collections.Concurrent;
  3. using System.Text;
  4. using Abp.Dependency;
  5. using Abp.IO.Extensions;
  6. using Abp.Reflection.Extensions;
  7. using IwbZeroCore.Net.Emailing;
  8. namespace ShwasherSys.Emailing
  9. {
  10. public class EmailTemplateProvider : IEmailTemplateProvider, ISingletonDependency
  11. {
  12. //private readonly IWebUrlService _webUrlService;
  13. private readonly ConcurrentDictionary<string, string> _defaultTemplates;
  14. public EmailTemplateProvider()
  15. {
  16. //_webUrlService = webUrlService;
  17. _defaultTemplates = new ConcurrentDictionary<string, string>();
  18. }
  19. public string GetDefaultTemplate(int? tenantId)
  20. {
  21. var tenancyKey = tenantId.HasValue ? tenantId.Value.ToString() : "host";
  22. return _defaultTemplates.GetOrAdd(tenancyKey, key =>
  23. {
  24. using (var stream = typeof(EmailTemplateProvider).GetAssembly().GetManifestResourceStream("ShwasherSys.Emailing.EmailTemplates.default.html"))
  25. {
  26. var bytes = stream.GetAllBytes();
  27. var template = Encoding.UTF8.GetString(bytes, 3, bytes.Length - 3);
  28. template = template.Replace("{THIS_YEAR}", DateTime.Now.Year.ToString());
  29. return template.Replace("{EMAIL_LOGO_URL}", GetTenantLogoUrl(tenantId));
  30. }
  31. });
  32. }
  33. private string GetTenantLogoUrl(int? tenantId)
  34. {
  35. return ""; //_webUrlService.GetServerRootAddress().EnsureEndsWith('/') + "img/logo.png";
  36. //if (!tenantId.HasValue)
  37. //{
  38. // return _webUrlService.GetServerRootAddress().EnsureEndsWith('/') + "img/logo/logo.png";
  39. //}
  40. //var tenant = _tenantCache.Get(tenantId.Value);
  41. //return _webUrlService.GetServerRootAddress(tenant.TenancyName).EnsureEndsWith('/') + "img/logo/" + tenantId.Value+ "/logo.png";
  42. }
  43. }
  44. }