Browse Source

Make `BackgroundEmailSendingJobArgs ` support `IMultiTenant`

pull/19578/head
maliming 2 years ago
parent
commit
368df4216b
No known key found for this signature in database GPG Key ID: A646B9CB645ECEA4
  1. 5
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs
  2. 11
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs
  3. 5
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs
  4. 4
      framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs
  5. 7
      framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs
  6. 4
      framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs

5
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/BackgroundEmailSendingJobArgs.cs

@ -1,12 +1,15 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using Volo.Abp.Data; using Volo.Abp.Data;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing; namespace Volo.Abp.Emailing;
[Serializable] [Serializable]
public class BackgroundEmailSendingJobArgs public class BackgroundEmailSendingJobArgs : IMultiTenant
{ {
public Guid? TenantId { get; set; }
public string? From { get; set; } public string? From { get; set; }
public string To { get; set; } = default!; public string To { get; set; } = default!;

11
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/EmailSenderBase.cs

@ -7,6 +7,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.BackgroundJobs; using Volo.Abp.BackgroundJobs;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing; namespace Volo.Abp.Emailing;
@ -17,6 +18,8 @@ public abstract class EmailSenderBase : IEmailSender
{ {
public ILogger<EmailSenderBase> Logger { get; set; } public ILogger<EmailSenderBase> Logger { get; set; }
protected ICurrentTenant CurrentTenant { get; }
protected IEmailSenderConfiguration Configuration { get; } protected IEmailSenderConfiguration Configuration { get; }
protected IBackgroundJobManager BackgroundJobManager { get; } protected IBackgroundJobManager BackgroundJobManager { get; }
@ -24,10 +27,14 @@ public abstract class EmailSenderBase : IEmailSender
/// <summary> /// <summary>
/// Constructor. /// Constructor.
/// </summary> /// </summary>
protected EmailSenderBase(IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager) protected EmailSenderBase(
ICurrentTenant currentTenant,
IEmailSenderConfiguration configuration,
IBackgroundJobManager backgroundJobManager)
{ {
Logger = NullLogger<EmailSenderBase>.Instance; Logger = NullLogger<EmailSenderBase>.Instance;
CurrentTenant = currentTenant;
Configuration = configuration; Configuration = configuration;
BackgroundJobManager = backgroundJobManager; BackgroundJobManager = backgroundJobManager;
} }
@ -93,6 +100,7 @@ public abstract class EmailSenderBase : IEmailSender
await BackgroundJobManager.EnqueueAsync( await BackgroundJobManager.EnqueueAsync(
new BackgroundEmailSendingJobArgs new BackgroundEmailSendingJobArgs
{ {
TenantId = CurrentTenant.Id,
To = to, To = to,
Subject = subject, Subject = subject,
Body = body, Body = body,
@ -113,6 +121,7 @@ public abstract class EmailSenderBase : IEmailSender
await BackgroundJobManager.EnqueueAsync( await BackgroundJobManager.EnqueueAsync(
new BackgroundEmailSendingJobArgs new BackgroundEmailSendingJobArgs
{ {
TenantId = CurrentTenant.Id,
From = from, From = from,
To = to, To = to,
Subject = subject, Subject = subject,

5
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/NullEmailSender.cs

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions; using Microsoft.Extensions.Logging.Abstractions;
using Volo.Abp.BackgroundJobs; using Volo.Abp.BackgroundJobs;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing; namespace Volo.Abp.Emailing;
@ -15,8 +16,8 @@ public class NullEmailSender : EmailSenderBase
/// <summary> /// <summary>
/// Creates a new <see cref="NullEmailSender"/> object. /// Creates a new <see cref="NullEmailSender"/> object.
/// </summary> /// </summary>
public NullEmailSender(IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager) public NullEmailSender(ICurrentTenant currentTenant, IEmailSenderConfiguration configuration, IBackgroundJobManager backgroundJobManager)
: base(configuration, backgroundJobManager) : base(currentTenant, configuration, backgroundJobManager)
{ {
} }

4
framework/src/Volo.Abp.Emailing/Volo/Abp/Emailing/Smtp/SmtpEmailSender.cs

@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using Volo.Abp.BackgroundJobs; using Volo.Abp.BackgroundJobs;
using Volo.Abp.DependencyInjection; using Volo.Abp.DependencyInjection;
using Volo.Abp.MultiTenancy;
namespace Volo.Abp.Emailing.Smtp; namespace Volo.Abp.Emailing.Smtp;
@ -19,9 +20,10 @@ public class SmtpEmailSender : EmailSenderBase, ISmtpEmailSender, ITransientDepe
/// Creates a new <see cref="SmtpEmailSender"/>. /// Creates a new <see cref="SmtpEmailSender"/>.
/// </summary> /// </summary>
public SmtpEmailSender( public SmtpEmailSender(
ICurrentTenant currentTenant,
ISmtpEmailSenderConfiguration smtpConfiguration, ISmtpEmailSenderConfiguration smtpConfiguration,
IBackgroundJobManager backgroundJobManager) IBackgroundJobManager backgroundJobManager)
: base(smtpConfiguration, backgroundJobManager) : base(currentTenant, smtpConfiguration, backgroundJobManager)
{ {
SmtpConfiguration = smtpConfiguration; SmtpConfiguration = smtpConfiguration;
} }

7
framework/src/Volo.Abp.MailKit/Volo/Abp/MailKit/MailKitSmtpEmailSender.cs

@ -9,6 +9,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using MimeKit; using MimeKit;
using MimeKit.Utils; using MimeKit.Utils;
using Volo.Abp.MultiTenancy;
using SmtpClient = MailKit.Net.Smtp.SmtpClient; using SmtpClient = MailKit.Net.Smtp.SmtpClient;
namespace Volo.Abp.MailKit; namespace Volo.Abp.MailKit;
@ -20,10 +21,12 @@ public class MailKitSmtpEmailSender : EmailSenderBase, IMailKitSmtpEmailSender
protected ISmtpEmailSenderConfiguration SmtpConfiguration { get; } protected ISmtpEmailSenderConfiguration SmtpConfiguration { get; }
public MailKitSmtpEmailSender(ISmtpEmailSenderConfiguration smtpConfiguration, public MailKitSmtpEmailSender(
ICurrentTenant currentTenant,
ISmtpEmailSenderConfiguration smtpConfiguration,
IBackgroundJobManager backgroundJobManager, IBackgroundJobManager backgroundJobManager,
IOptions<AbpMailKitOptions> abpMailKitConfiguration) IOptions<AbpMailKitOptions> abpMailKitConfiguration)
: base(smtpConfiguration, backgroundJobManager) : base(currentTenant, smtpConfiguration, backgroundJobManager)
{ {
AbpMailKitOptions = abpMailKitConfiguration.Value; AbpMailKitOptions = abpMailKitConfiguration.Value;
SmtpConfiguration = smtpConfiguration; SmtpConfiguration = smtpConfiguration;

4
framework/test/Volo.Abp.MailKit.Tests/Volo/Abp/MailKit/MailKitSmtpEmailSender_Tests.cs

@ -3,6 +3,7 @@ using System.Threading.Tasks;
using NSubstitute; using NSubstitute;
using Volo.Abp.BackgroundJobs; using Volo.Abp.BackgroundJobs;
using Volo.Abp.Emailing.Smtp; using Volo.Abp.Emailing.Smtp;
using Volo.Abp.MultiTenancy;
using Volo.Abp.Testing; using Volo.Abp.Testing;
using Xunit; using Xunit;
@ -35,6 +36,7 @@ public class MailKitSmtpEmailSender_Tests : AbpIntegratedTest<AbpMailKitTestModu
private static MailKitSmtpEmailSender CreateMailKitEmailSender() private static MailKitSmtpEmailSender CreateMailKitEmailSender()
{ {
var currentTenant = Substitute.For<ICurrentTenant>();
var mailConfig = Substitute.For<ISmtpEmailSenderConfiguration>(); var mailConfig = Substitute.For<ISmtpEmailSenderConfiguration>();
var bgJob = Substitute.For<IBackgroundJobManager>(); var bgJob = Substitute.For<IBackgroundJobManager>();
@ -44,7 +46,7 @@ public class MailKitSmtpEmailSender_Tests : AbpIntegratedTest<AbpMailKitTestModu
mailConfig.GetPortAsync().Returns(Task.FromResult(587)); mailConfig.GetPortAsync().Returns(Task.FromResult(587));
mailConfig.GetEnableSslAsync().Returns(Task.FromResult(false)); mailConfig.GetEnableSslAsync().Returns(Task.FromResult(false));
var mailSender = new MailKitSmtpEmailSender(mailConfig, bgJob, null); var mailSender = new MailKitSmtpEmailSender(currentTenant, mailConfig, bgJob, null);
return mailSender; return mailSender;
} }
} }

Loading…
Cancel
Save