Notify: resolving names for mapping
This commit is contained in:
parent
87cbd6b021
commit
48d2685e67
@ -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");
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -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))
|
||||
{
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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)
|
||||
|
@ -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);
|
||||
|
||||
|
@ -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 {
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user