Notify: resolving names for mapping

This commit is contained in:
Maksim Chegulov 2022-02-18 15:54:39 +03:00
parent 87cbd6b021
commit 48d2685e67
10 changed files with 45 additions and 45 deletions

View File

@ -77,7 +77,7 @@ namespace ASC.Core.Notify
Subject = message.Subject.Trim(' ', '\t', '\n', '\r'),
ContentType = message.ContentType,
Content = message.Body,
Sender = senderName,
SenderType = senderName,
CreationDate = DateTime.UtcNow.Ticks,
};
@ -87,7 +87,7 @@ namespace ASC.Core.Notify
var (tenantManager, configuration, options) = scopeClass;
var tenant = tenantManager.GetCurrentTenant(false);
m.Tenant = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
m.TenantId = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
var from = MailAddressUtils.Create(configuration.SmtpSettings.SenderAddress, configuration.SmtpSettings.SenderDisplayName);
var fromTag = message.Arguments.FirstOrDefault(x => x.Tag.Equals("MessageFrom"));
@ -100,14 +100,14 @@ namespace ASC.Core.Notify
}
catch { }
}
m.From = from.ToString();
m.Sender = from.ToString();
var to = new List<string>();
foreach (var address in message.Recipient.Addresses)
{
to.Add(MailAddressUtils.Create(address, message.Recipient.Name).ToString());
}
m.To = string.Join("|", to.ToArray());
m.Reciever = string.Join("|", to.ToArray());
var replyTag = message.Arguments.FirstOrDefault(x => x.Tag == "replyto");
if (replyTag != null && replyTag.Value is string value)
@ -131,7 +131,7 @@ namespace ASC.Core.Notify
var attachmentTag = message.Arguments.FirstOrDefault(x => x.Tag == "EmbeddedAttachments");
if (attachmentTag != null && attachmentTag.Value != null)
{
m.EmbeddedAttachments.AddRange(attachmentTag.Value as NotifyMessageAttachment[]);
m.Attachments.AddRange(attachmentTag.Value as NotifyMessageAttachment[]);
}
var autoSubmittedTag = message.Arguments.FirstOrDefault(x => x.Tag == "AutoSubmitted");

View File

@ -56,16 +56,16 @@ namespace ASC.Core.Notify
{
var m = new NotifyMessage
{
To = username,
Reciever = username,
Subject = message.Subject,
ContentType = message.ContentType,
Content = message.Body,
Sender = senderName,
SenderType = senderName,
CreationDate = DateTime.UtcNow.Ticks,
};
var tenant = tenantManager.GetCurrentTenant(false);
m.Tenant = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
m.TenantId = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
sender.Send(m);
}

View File

@ -60,11 +60,11 @@ namespace ASC.Core.Notify.Senders
{
try
{
Log.DebugFormat("Tenant: {0}, To: {1}", m.Tenant, m.To);
Log.DebugFormat("Tenant: {0}, To: {1}", m.TenantId, m.Reciever);
using var scope = ServiceProvider.CreateScope();
var scopeClass = scope.ServiceProvider.GetService<AWSSenderScope>();
var (tenantManager, configuration) = scopeClass;
tenantManager.SetCurrentTenant(m.Tenant);
tenantManager.SetCurrentTenant(m.TenantId);
if (!configuration.SmtpSettings.IsDefaultSettings)
{
@ -81,7 +81,7 @@ namespace ASC.Core.Notify.Senders
}
catch (Exception e)
{
Log.ErrorFormat("Tenant: {0}, To: {1} - {2}", m.Tenant, m.To, e);
Log.ErrorFormat("Tenant: {0}, To: {1} - {2}", m.TenantId, m.Reciever, e);
throw;
}
}
@ -130,7 +130,7 @@ namespace ASC.Core.Notify.Senders
var dest = new Destination
{
ToAddresses = m.To.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(a => MailAddressUtils.Create(a).Address).ToList(),
ToAddresses = m.Reciever.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries).Select(a => MailAddressUtils.Create(a).Address).ToList(),
};
var subject = new Content(MimeHeaderUtils.EncodeMime(m.Subject)) { Charset = Encoding.UTF8.WebName, };
@ -148,7 +148,7 @@ namespace ASC.Core.Notify.Senders
body = new Body(new Content(m.Content) { Charset = Encoding.UTF8.WebName });
}
var from = MailAddressUtils.Create(m.From).ToEncodedString();
var from = MailAddressUtils.Create(m.Sender).ToEncodedString();
var request = new SendEmailRequest { Source = from, Destination = dest, Message = new Message(subject, body) };
if (!string.IsNullOrEmpty(m.ReplyTo))
{

View File

@ -54,7 +54,7 @@ namespace ASC.Core.Notify.Senders
{
using var scope = ServiceProvider.CreateScope();
var service = scope.ServiceProvider.GetService<JabberServiceClient>();
service.SendMessage(m.Tenant, null, m.To, text, m.Subject);
service.SendMessage(m.TenantId, null, m.Reciever, text, m.Subject);
}
catch (Exception e)
{

View File

@ -84,7 +84,7 @@ namespace ASC.Core.Notify.Senders
using var scope = ServiceProvider.CreateScope();
var scopeClass = scope.ServiceProvider.GetService<SmtpSenderScope>();
var (tenantManager, configuration) = scopeClass;
tenantManager.SetCurrentTenant(m.Tenant);
tenantManager.SetCurrentTenant(m.TenantId);
var smtpClient = GetSmtpClient();
var result = NoticeSendResult.TryOnceAgain;
@ -112,7 +112,7 @@ namespace ASC.Core.Notify.Senders
}
catch (Exception e)
{
Log.ErrorFormat("Tenant: {0}, To: {1} - {2}", m.Tenant, m.To, e);
Log.ErrorFormat("Tenant: {0}, To: {1} - {2}", m.TenantId, m.Reciever, e);
throw;
}
}
@ -177,11 +177,11 @@ namespace ASC.Core.Notify.Senders
Subject = m.Subject
};
var fromAddress = MailboxAddress.Parse(ParserOptions.Default, m.From);
var fromAddress = MailboxAddress.Parse(ParserOptions.Default, m.Sender);
mimeMessage.From.Add(fromAddress);
foreach (var to in m.To.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries))
foreach (var to in m.Reciever.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries))
{
mimeMessage.To.Add(MailboxAddress.Parse(ParserOptions.Default, to));
}
@ -202,14 +202,14 @@ namespace ASC.Core.Notify.Senders
ContentTransferEncoding = ContentEncoding.QuotedPrintable
};
if (m.EmbeddedAttachments != null && m.EmbeddedAttachments.Count > 0)
if (m.Attachments != null && m.Attachments.Count > 0)
{
var multipartRelated = new MultipartRelated
{
Root = htmlPart
};
foreach (var attachment in m.EmbeddedAttachments)
foreach (var attachment in m.Attachments)
{
var mimeEntity = ConvertAttachmentToMimePart(attachment);
if (mimeEntity != null)

View File

@ -45,11 +45,11 @@ namespace ASC.Core.Notify
const SendResult result = SendResult.OK;
var m = new NotifyMessage
{
To = message.Recipient.ID,
Reciever = message.Recipient.ID,
Subject = message.Subject,
ContentType = message.ContentType,
Content = message.Body,
Sender = senderName,
SenderType = senderName,
CreationDate = DateTime.UtcNow.Ticks,
};
@ -57,7 +57,7 @@ namespace ASC.Core.Notify
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
var tenant = tenantManager.GetCurrentTenant(false);
m.Tenant = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
m.TenantId = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
sender.Send(m);

View File

@ -3,17 +3,17 @@
package ASC.Notify.Messages;
message NotifyMessage {
int32 tenant = 1;
string sender = 2;
string from = 3;
string to = 4;
int32 tenant_id = 1;
string sender_type = 2;
string sender = 3;
string reciever = 4;
string reply_to = 5;
string subject = 6;
string content_type = 7;
string content = 8;
int64 creation_date = 9;
int32 priority = 10;
repeated NotifyMessageAttachment embedded_attachments = 11;
repeated NotifyMessageAttachment attachments = 11;
string auto_submitted = 12;
}
message NotifyMessageAttachment {

View File

@ -50,16 +50,16 @@ public class DbWorker
var notifyQueue = new NotifyQueue
{
NotifyId = 0,
TenantId = m.Tenant,
Sender = m.From,
Reciever = m.To,
TenantId = m.TenantId,
Sender = m.Sender,
Reciever = m.Reciever,
Subject = m.Subject,
ContentType = m.ContentType,
Content = m.Content,
SenderType = m.Sender,
SenderType = m.SenderType,
CreationDate = new DateTime(m.CreationDate),
ReplyTo = m.ReplyTo,
Attachments = m.EmbeddedAttachments.ToString(),
Attachments = m.Attachments.ToString(),
AutoSubmitted = m.AutoSubmitted
};
@ -108,20 +108,20 @@ public class DbWorker
{
var res = new NotifyMessage
{
Tenant = r.queue.TenantId,
From = r.queue.Sender,
To = r.queue.Reciever,
TenantId = r.queue.TenantId,
Sender = r.queue.Sender,
Reciever = r.queue.Reciever,
Subject = r.queue.Subject,
ContentType = r.queue.ContentType,
Content = r.queue.Content,
Sender = r.queue.SenderType,
SenderType = r.queue.SenderType,
CreationDate = r.queue.CreationDate.Ticks,
ReplyTo = r.queue.ReplyTo,
AutoSubmitted = r.queue.AutoSubmitted
};
try
{
res.EmbeddedAttachments.AddRange(JsonConvert.DeserializeObject<RepeatedField<NotifyMessageAttachment>>(r.queue.Attachments));
res.Attachments.AddRange(JsonConvert.DeserializeObject<RepeatedField<NotifyMessageAttachment>>(r.queue.Attachments));
}
catch (Exception)
{

View File

@ -107,7 +107,7 @@ public class NotifySender : IDisposable
var result = MailSendingState.Sended;
try
{
var sender = NotifyServiceCfg.Senders.FirstOrDefault(r => r.Name == m.Value.Sender);
var sender = NotifyServiceCfg.Senders.FirstOrDefault(r => r.Name == m.Value.SenderType);
if (sender != null)
{
sender.NotifySender.Send(m.Value);

View File

@ -44,8 +44,8 @@ namespace ASC.TelegramService
public Task SendMessage(NotifyMessage msg)
{
if (string.IsNullOrEmpty(msg.To)) return Task.CompletedTask;
if (!Clients.ContainsKey(msg.Tenant)) return Task.CompletedTask;
if (string.IsNullOrEmpty(msg.Reciever)) return Task.CompletedTask;
if (!Clients.ContainsKey(msg.TenantId)) return Task.CompletedTask;
return InternalSendMessage(msg);
}
@ -55,15 +55,15 @@ namespace ASC.TelegramService
var scope = ServiceProvider.CreateScope();
var cachedTelegramDao = scope.ServiceProvider.GetService<IOptionsSnapshot<CachedTelegramDao>>().Value;
var client = Clients[msg.Tenant].Client;
var client = Clients[msg.TenantId].Client;
try
{
var tgUser = cachedTelegramDao.GetUser(Guid.Parse(msg.To), msg.Tenant);
var tgUser = cachedTelegramDao.GetUser(Guid.Parse(msg.Reciever), msg.TenantId);
if (tgUser == null)
{
Log.DebugFormat("Couldn't find telegramId for user '{0}'", msg.To);
Log.DebugFormat("Couldn't find telegramId for user '{0}'", msg.Reciever);
return;
}
@ -72,7 +72,7 @@ namespace ASC.TelegramService
}
catch (Exception e)
{
Log.DebugFormat("Couldn't send message for user '{0}' got an '{1}'", msg.To, e.Message);
Log.DebugFormat("Couldn't send message for user '{0}' got an '{1}'", msg.Reciever, e.Message);
}
}