From 3ff8ae2a9c86a6f47f3bba57db02d2971073b13c Mon Sep 17 00:00:00 2001 From: solidprogramming Date: Fri, 17 Oct 2025 18:57:23 +0200 Subject: [PATCH 1/2] DetermineRecipient --- .../RequestInterfacePopup.razor | 59 ++++++++++++++++--- 1 file changed, 52 insertions(+), 7 deletions(-) diff --git a/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor b/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor index 35b81892e3..facf144bc3 100644 --- a/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor +++ b/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor @@ -1,4 +1,6 @@ -@using FWO.Middleware.Client +@using FWO.Data.Middleware +@using FWO.Middleware.Client +@using RestSharp @inject ApiConnection apiConnection @inject UserConfig userConfig @@ -42,7 +44,7 @@ - + @@ -91,6 +93,7 @@ private async Task SendRequest() { + await DetermineRecipient(SelectedOwner); // Pass SelectedOwner to DetermineRecipient WorkInProgress = true; try { @@ -101,7 +104,7 @@ if(ticketId > 0) { - ModellingConnectionHandler ConnHandler = new (apiConnection, userConfig, SelectedOwner, + ModellingConnectionHandler ConnHandler = new (apiConnection, userConfig, SelectedOwner, new(), new(), true, false, DisplayMessageInUi, DefaultInit.DoNothing, false); await ConnHandler.PartialInit(); ConnHandler.RequesterId = RequestingOwner.Id; @@ -121,6 +124,45 @@ WorkInProgress = false; } + private async Task DetermineRecipient(FwoOwner owner) + { + try + { + if(string.IsNullOrEmpty(owner.GroupDn)) + { + // No group registered - send to main responsible + return EmailRecipientOption.OwnerMainResponsible; + } + + RestResponse> response = await middlewareClient.GetInternalGroups(); + + if(response.StatusCode == System.Net.HttpStatusCode.OK && response.Data != null) + { + GroupGetReturnParameters? ownerGroup = response.Data.FirstOrDefault(g => g.GroupDn == owner.GroupDn); + + if(ownerGroup == null) + { + return EmailRecipientOption.OwnerMainResponsible; + } + + if(ownerGroup.Members == null || ownerGroup.Members.Count == 0) + { + //Group has no members - send to main responsible + return EmailRecipientOption.OwnerMainResponsible; + } + + return EmailRecipientOption.OwnerGroupOnly; + } + + return EmailRecipientOption.OwnerMainResponsible; + } + catch(Exception exception) + { + DisplayMessageInUi(exception, "", "", false); + return EmailRecipientOption.OwnerMainResponsible; + } + } + private bool CheckInput() { if(Reason == "" || InterfaceName == "") @@ -137,18 +179,21 @@ } private async Task SendEmail(long connId) - { + { try { - EmailHelper emailHelper = new(apiConnection, middlewareClient, userConfig, DisplayMessageInUi); + EmailHelper emailHelper = new(apiConnection, middlewareClient, userConfig, DisplayMessageInUi); await emailHelper.Init(); string interfaceUrl = $"{userConfig.UiHostName}/networkmodelling/{SelectedOwner.ExtAppId}/{connId}"; string subject = userConfig.ModReqEmailSubject; string body = $"{RequestingOwner.Name} {userConfig.ModReqEmailBody} {SelectedOwner.Name}
" + - $"{userConfig.GetText("interface")}: {InterfaceName}
"; - if(await emailHelper.SendEmailToOwnerResponsibles(SelectedOwner, subject, body, userConfig.ModReqEmailReceiver, userConfig.ModReqEmailRequesterInCc)) + $"{userConfig.GetText("interface")}: {InterfaceName}
"; + + EmailRecipientOption recipientOption = await DetermineRecipient(SelectedOwner); + + if(await emailHelper.SendEmailToOwnerResponsibles(SelectedOwner, subject, body, recipientOption, userConfig.ModReqEmailRequesterInCc)) { DisplayMessageInUi(null, userConfig.GetText("send_email"), userConfig.GetText("U9011"), false); } From 7f74395a19340bf0bdbbfe4d43fa7b9448b70e4f Mon Sep 17 00:00:00 2001 From: solidprogramming Date: Fri, 17 Oct 2025 18:57:51 +0200 Subject: [PATCH 2/2] . --- .../FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor b/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor index facf144bc3..fc592e0f3b 100644 --- a/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor +++ b/roles/ui/files/FWO.UI/Pages/NetworkModelling/RequestInterfacePopup.razor @@ -191,9 +191,9 @@ string body = $"{RequestingOwner.Name} {userConfig.ModReqEmailBody} {SelectedOwner.Name}
" + $"{userConfig.GetText("interface")}: {InterfaceName}
"; - EmailRecipientOption recipientOption = await DetermineRecipient(SelectedOwner); + EmailRecipientOption recipient = await DetermineRecipient(SelectedOwner); - if(await emailHelper.SendEmailToOwnerResponsibles(SelectedOwner, subject, body, recipientOption, userConfig.ModReqEmailRequesterInCc)) + if(await emailHelper.SendEmailToOwnerResponsibles(SelectedOwner, subject, body, recipient, userConfig.ModReqEmailRequesterInCc)) { DisplayMessageInUi(null, userConfig.GetText("send_email"), userConfig.GetText("U9011"), false); }