EmailSenderConfiguration.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using Abp.Configuration;
  2. using Abp.Extensions;
  3. namespace Abp.Net.Mail
  4. {
  5. /// <summary>
  6. /// Implementation of <see cref="IEmailSenderConfiguration"/> that reads settings
  7. /// from <see cref="ISettingManager"/>.
  8. /// </summary>
  9. public abstract class EmailSenderConfiguration : IEmailSenderConfiguration
  10. {
  11. public virtual string DefaultFromAddress
  12. {
  13. get { return GetNotEmptySettingValue(EmailSettingNames.DefaultFromAddress); }
  14. }
  15. public virtual string DefaultFromDisplayName
  16. {
  17. get { return SettingManager.GetSettingValue(EmailSettingNames.DefaultFromDisplayName); }
  18. }
  19. protected readonly ISettingManager SettingManager;
  20. /// <summary>
  21. /// Creates a new <see cref="EmailSenderConfiguration"/>.
  22. /// </summary>
  23. protected EmailSenderConfiguration(ISettingManager settingManager)
  24. {
  25. SettingManager = settingManager;
  26. }
  27. /// <summary>
  28. /// Gets a setting value by checking. Throws <see cref="AbpException"/> if it's null or empty.
  29. /// </summary>
  30. /// <param name="name">Name of the setting</param>
  31. /// <returns>Value of the setting</returns>
  32. protected string GetNotEmptySettingValue(string name)
  33. {
  34. var value = SettingManager.GetSettingValue(name);
  35. if (value.IsNullOrEmpty())
  36. {
  37. throw new AbpException($"Setting value for '{name}' is null or empty!");
  38. }
  39. return value;
  40. }
  41. }
  42. }