no message

This commit is contained in:
kittapath 2024-10-18 16:11:47 +07:00
parent a583dc7c42
commit e989d6c584
13 changed files with 201 additions and 112 deletions

View file

@ -93,7 +93,7 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
Type = x.Type,
ReceiveDate = x.ReceiveDate,
OpenDate = x.OpenDate,
Payload = x.Payload == "" ? null : JsonConvert.DeserializeObject<CommandPayload>(Regex.Unescape(x.Payload))
Payload = x.Payload
}).ToList();
var data_opens = await _dbContext.Set<Notification>()
@ -185,7 +185,7 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
}
}
public async Task PushNotificationAsync(Guid ReceiverUserId, string Subject, string Body, string Payload = "", bool IsSendInbox = false, bool IsSendMail = false)
public async Task PushNotificationAsync(Guid ReceiverUserId, string Subject, string Body, string Payload = "", string NotiLink = "", bool IsSendInbox = false, bool IsSendMail = false)
{
try
{
@ -197,7 +197,7 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
Body = Body,
ReceiverUserId = ReceiverUserId,
Type = "",
Payload = Payload,
Payload = NotiLink,
CreatedFullName = FullName ?? "System Administrator",
CreatedUserId = UserId ?? "",
CreatedAt = DateTime.Now,
@ -234,7 +234,7 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
}
}
public async Task PushNotificationsAsync(Guid[] ReceiverUserIds, string Subject, string Body, string Payload = "", bool IsSendInbox = false, bool IsSendMail = false)
public async Task PushNotificationsAsync(Guid[] ReceiverUserIds, string Subject, string Body, string Payload = "", string NotiLink = "", bool IsSendInbox = false, bool IsSendMail = false)
{
try
{
@ -245,7 +245,7 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
Body = Body,
ReceiverUserId = ReceiverUserId,
Type = "",
Payload = Payload,
Payload = NotiLink,
CreatedFullName = FullName ?? "System Administrator",
CreatedUserId = UserId ?? "",
CreatedAt = DateTime.Now,
@ -281,6 +281,59 @@ namespace BMA.EHR.Application.Repositories.MessageQueue
throw;
}
}
public class NotisLinkRequest
{
public Guid ReceiverUserId { get; set; }
public string NotiLink { get; set; }
}
public async Task PushNotificationsLinkAsync(NotisLinkRequest[] ReceiverUserIds, string Subject, string Body, string Payload = "", bool IsSendInbox = false, bool IsSendMail = false)
{
try
{
foreach (var ReceiverUserId in ReceiverUserIds)
{
_dbContext.Set<Notification>().Add(new Notification
{
Body = Body,
ReceiverUserId = ReceiverUserId.ReceiverUserId,
Type = "",
Payload = ReceiverUserId.NotiLink,
CreatedFullName = FullName ?? "System Administrator",
CreatedUserId = UserId ?? "",
CreatedAt = DateTime.Now,
LastUpdateFullName = FullName ?? "System Administrator",
LastUpdateUserId = UserId ?? "",
LastUpdatedAt = DateTime.Now,
});
if (IsSendInbox == true)
{
_dbContext.Set<Inbox>().Add(new Inbox
{
Subject = Subject,
Body = Body,
ReceiverUserId = ReceiverUserId.ReceiverUserId,
Payload = Payload,
CreatedFullName = FullName ?? "System Administrator",
CreatedUserId = UserId ?? "",
CreatedAt = DateTime.Now,
LastUpdateFullName = FullName ?? "System Administrator",
LastUpdateUserId = UserId ?? "",
LastUpdatedAt = DateTime.Now,
});
}
if (IsSendMail == true)
{
_emailSenderService.SendMail(Subject, Body, "kittapath@frappet.com");
}
}
await _dbContext.SaveChangesAsync();
}
catch
{
throw;
}
}
public async Task PushNotificationAsyncV2(string? ReceiverUserId, string Subject, string Body, string Payload = "", bool IsSendInbox = false, bool IsSendMail = false)
{
try

View file

@ -973,15 +973,17 @@ namespace BMA.EHR.Application.Repositories.Reports
$"แจ้งเตือนรอบการเสนอขอ {insigniaPeriod.Name} รอบที่{insigniaPeriod.Round}",
$"แจ้งเตือนรอบการเสนอขอ {insigniaPeriod.Name} รอบที่{insigniaPeriod.Round}",
"",
"",
true
);
);
await _repositoryNoti.PushNotificationAsync(
Guid.Parse("08dbca3a-8b6a-4a4e-8b23-1f62e4f30ef6"),
$"แจ้งเตือนรอบการเสนอขอ {insigniaPeriod.Name} รอบที่{insigniaPeriod.Round}",
$"แจ้งเตือนรอบการเสนอขอ {insigniaPeriod.Name} รอบที่{insigniaPeriod.Round}",
"",
"",
true
);
);
}
}
}

View file

@ -990,9 +990,10 @@ namespace BMA.EHR.Application.Repositories.Reports
cronjobNoti.Subject,
cronjobNoti.Body,
cronjobNoti.Payload,
"",
cronjobNoti.IsSendInbox,
cronjobNoti.IsSendMail
);
);
cronjobNoti.IsSendNoti = true;
}
}