Merge pull request #6068 from sbwalker/dev

improve change detection notification logic
This commit is contained in:
Shaun Walker
2026-02-24 08:59:58 -05:00
committed by GitHub

View File

@@ -209,8 +209,7 @@ namespace Oqtane.Infrastructure
if (siteGroupMember.SiteGroup.Type == SiteGroupTypes.ChangeDetection && !string.IsNullOrEmpty(log)) if (siteGroupMember.SiteGroup.Type == SiteGroupTypes.ChangeDetection && !string.IsNullOrEmpty(log))
{ {
// send change log to administrators // send change log to administrators
SendNotifications(provider, secondarySite.SiteId, secondarySite.Name, log); log += SendNotifications(provider, siteGroupMember, secondarySite.SiteId, secondarySite.Name, log);
log += Log(siteGroupMember, $"Change Log Sent To Administrators For Secondary Site: {secondarySite.Name}");
} }
return log; return log;
@@ -849,16 +848,29 @@ namespace Oqtane.Infrastructure
return log; return log;
} }
private void SendNotifications(IServiceProvider provider, int siteId, string siteName, string log) private string SendNotifications(IServiceProvider provider, SiteGroupMember siteGroupMember, int siteId, string siteName, string changeLog)
{ {
var userRoleRepository = provider.GetRequiredService<IUserRoleRepository>(); var userRoleRepository = provider.GetRequiredService<IUserRoleRepository>();
var notificationRepository = provider.GetRequiredService<INotificationRepository>(); var notificationRepository = provider.GetRequiredService<INotificationRepository>();
var log = "";
foreach (var userRole in userRoleRepository.GetUserRoles(RoleNames.Admin, siteId)) // get administrators for site
var userRoles = userRoleRepository.GetUserRoles(RoleNames.Admin, siteId);
if (userRoles != null && userRoles.Any())
{ {
var notification = new Notification(siteId, userRole.User, $"{siteName} Change Log", log); foreach (var userRole in userRoles)
notificationRepository.AddNotification(notification); {
var notification = new Notification(siteId, userRole.User, $"{siteName} Change Log", changeLog);
notificationRepository.AddNotification(notification);
}
log += Log(siteGroupMember, $"Change Log Sent To Administrators For Secondary Site: {siteName}");
} }
else
{
log += Log(siteGroupMember, $"Error Sending Change Log - Secondary Site {siteName} Does Not Have Any Administrators Defined");
}
return log;
} }
private string Log(SiteGroupMember siteGroupMember, string content) private string Log(SiteGroupMember siteGroupMember, string content)