forked from ddrilling/AsbCloudServer
Правка по результатам ревью
This commit is contained in:
parent
17629b54c4
commit
85d0aca9a8
@ -22,7 +22,7 @@ namespace AsbCloudInfrastructure.Background
|
||||
private string smtpServer;
|
||||
private bool IsConfigured;
|
||||
|
||||
public WorkToSendEmail(string workId, NotificationDto notification, IConfiguration configuration) : base(workId)
|
||||
public WorkToSendEmail(NotificationDto notification, IConfiguration configuration) : base(MakeWorkId(notification))
|
||||
{
|
||||
this.notification = notification;
|
||||
|
||||
@ -81,5 +81,14 @@ namespace AsbCloudInfrastructure.Background
|
||||
|
||||
Trace.TraceInformation($"Send email to {user.Email} subj:{notification.Title} html body count {notification.Message.Length}");
|
||||
}
|
||||
|
||||
|
||||
private static string MakeWorkId(NotificationDto notification)
|
||||
{
|
||||
var hash = notification.IdUser.GetHashCode();
|
||||
hash ^= notification.Title.GetHashCode();
|
||||
hash ^= notification.Message.GetHashCode();
|
||||
return hash.ToString("x");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -12,8 +12,8 @@ namespace AsbCloudInfrastructure.Services.Email
|
||||
|
||||
public class EmailNotificationTransportService : INotificationTransportService
|
||||
{
|
||||
private readonly IConfiguration configuration;
|
||||
private readonly BackgroundWorker backgroundWorker;
|
||||
private IConfiguration configuration;
|
||||
|
||||
public EmailNotificationTransportService(BackgroundWorker backgroundWorker,
|
||||
IConfiguration configuration)
|
||||
@ -26,10 +26,9 @@ namespace AsbCloudInfrastructure.Services.Email
|
||||
|
||||
public Task SendAsync(NotificationDto notification, CancellationToken cancellationToken)
|
||||
{
|
||||
var workId = MakeWorkId(notification.IdUser, notification.Title, notification.Message);
|
||||
if (!backgroundWorker.Works.Any(w => w.Id == workId))
|
||||
var work = new WorkToSendEmail(notification, configuration);
|
||||
if (!backgroundWorker.Works.Any(w => w.Id == work.Id))
|
||||
{
|
||||
var work = new WorkToSendEmail(workId, notification, configuration);
|
||||
backgroundWorker.Enqueue(work);
|
||||
}
|
||||
|
||||
@ -44,12 +43,6 @@ namespace AsbCloudInfrastructure.Services.Email
|
||||
return Task.WhenAll(tasks);
|
||||
}
|
||||
|
||||
private static string MakeWorkId(int idUser, string subject, string content)
|
||||
{
|
||||
var hash = idUser.GetHashCode();
|
||||
hash ^= subject.GetHashCode();
|
||||
hash ^= content.GetHashCode();
|
||||
return hash.ToString("x");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user