From b493b8ee68f820621bb06de7dcbf2b968142067c Mon Sep 17 00:00:00 2001 From: swapnamol-abraham Date: Tue, 7 Apr 2026 12:49:43 +0100 Subject: [PATCH] TD-7069: Call the MIB endpoint from wherever LH business logic exists for updating primary email address --- .../LearningHub.Nhs.AdminUI.csproj | 2 +- ...rningHub.Nhs.WebUI.AutomatedUiTests.csproj | 2 +- .../Controllers/MyAccountController.cs | 9 +++ .../Interfaces/IMoodleBridgeApiService.cs | 8 +++ .../LearningHub.Nhs.WebUI.csproj | 2 +- .../Services/MoodleBridgeApiService.cs | 42 ++++++++++++++ .../LearningHub.Nhs.OpenApi.Models.csproj | 2 +- ....Nhs.OpenApi.Repositories.Interface.csproj | 2 +- ...earningHub.Nhs.OpenApi.Repositories.csproj | 2 +- ...gHub.Nhs.OpenApi.Services.Interface.csproj | 2 +- .../Services/IMoodleBridgeApiService.cs | 8 +++ .../LearningHub.Nhs.OpenApi.Services.csproj | 2 +- .../Services/MoodleBridgeApiService.cs | 58 +++++++++++++++++-- .../LearningHub.Nhs.OpenApi.Tests.csproj | 2 +- .../Controllers/MoodleBridgeController.cs | 14 +++++ .../LearningHub.NHS.OpenAPI.csproj | 2 +- ...ub.Nhs.ReportApi.Services.Interface.csproj | 2 +- ...ub.Nhs.ReportApi.Services.UnitTests.csproj | 2 +- .../LearningHub.Nhs.ReportApi.Services.csproj | 2 +- .../LearningHub.Nhs.ReportApi.Shared.csproj | 2 +- .../LearningHub.Nhs.ReportApi.csproj | 2 +- .../LearningHub.Nhs.Api.csproj | 2 +- .../LearningHub.Nhs.Api.Shared.csproj | 2 +- .../LearningHub.Nhs.Api.UnitTests.csproj | 2 +- ...earningHub.Nhs.Repository.Interface.csproj | 2 +- .../LearningHub.Nhs.Repository.csproj | 2 +- .../LearningHub.Nhs.Services.Interface.csproj | 2 +- .../LearningHub.Nhs.Services.UnitTests.csproj | 2 +- .../LearningHub.Nhs.Services.csproj | 2 +- ...earningHub.Nhs.Migration.ConsoleApp.csproj | 2 +- ...LearningHub.Nhs.Migration.Interface.csproj | 2 +- .../LearningHub.Nhs.Migration.Models.csproj | 2 +- ...ub.Nhs.Migration.Staging.Repository.csproj | 2 +- ...LearningHub.Nhs.Migration.UnitTests.csproj | 2 +- .../LearningHub.Nhs.Migration.csproj | 2 +- 35 files changed, 163 insertions(+), 34 deletions(-) diff --git a/AdminUI/LearningHub.Nhs.AdminUI/LearningHub.Nhs.AdminUI.csproj b/AdminUI/LearningHub.Nhs.AdminUI/LearningHub.Nhs.AdminUI.csproj index 1894250b..1e0cbbb2 100644 --- a/AdminUI/LearningHub.Nhs.AdminUI/LearningHub.Nhs.AdminUI.csproj +++ b/AdminUI/LearningHub.Nhs.AdminUI/LearningHub.Nhs.AdminUI.csproj @@ -89,7 +89,7 @@ - + diff --git a/LearningHub.Nhs.WebUI.AutomatedUiTests/LearningHub.Nhs.WebUI.AutomatedUiTests.csproj b/LearningHub.Nhs.WebUI.AutomatedUiTests/LearningHub.Nhs.WebUI.AutomatedUiTests.csproj index e97e68a3..34a9455d 100644 --- a/LearningHub.Nhs.WebUI.AutomatedUiTests/LearningHub.Nhs.WebUI.AutomatedUiTests.csproj +++ b/LearningHub.Nhs.WebUI.AutomatedUiTests/LearningHub.Nhs.WebUI.AutomatedUiTests.csproj @@ -13,7 +13,7 @@ - + diff --git a/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs b/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs index bb24c03f..13dcd7e2 100644 --- a/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs +++ b/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs @@ -11,6 +11,7 @@ using GDS.MultiPageFormData; using GDS.MultiPageFormData.Enums; using LearningHub.Nhs.Caching; + using LearningHub.Nhs.Models.User; using LearningHub.Nhs.WebUI.Configuration; using LearningHub.Nhs.WebUI.Helpers; using LearningHub.Nhs.WebUI.Interfaces; @@ -97,6 +98,7 @@ public MyAccountController( this.multiPageFormService = multiPageFormService; this.cacheService = cacheService; this.configuration = configuration; + this.moodleBridgeApiService = moodleBridgeApiService; } private string LoginWizardCacheKey => $"{this.CurrentUserId}:LoginWizard"; @@ -1497,12 +1499,18 @@ public async Task ConfirmEmail(string token, string loctoken) var validationResult = await this.userService.ValidateEmailChangeTokenAsync(token, loctoken, isUserRoleUpgrade); EmailChangeValidateViewModel model = new EmailChangeValidateViewModel(); + UpdateEmailaddressViewModel emailModel = new UpdateEmailaddressViewModel() + { + OldEmail = user.EmailAddress, + NewEmail = validationResult.Email, + }; if (validationResult.Valid) { if (isUserRoleUpgrade) { await this.userService.UpgradeAsFullAccessUserAsync(validationResult.UserId, validationResult.Email); + await this.moodleBridgeApiService.UpdateEmail(emailModel); this.ViewBag.SuccessMessage = CommonValidationErrorMessages.EmailConfirmSucessMessage; model.Token = token; model.Loctoken = loctoken; @@ -1511,6 +1519,7 @@ public async Task ConfirmEmail(string token, string loctoken) else { await this.userService.UpdateUserPrimaryEmailAsync(validationResult.Email); + await this.moodleBridgeApiService.UpdateEmail(emailModel); // Add UserHistory entry UserHistoryViewModel userHistory = new UserHistoryViewModel() diff --git a/LearningHub.Nhs.WebUI/Interfaces/IMoodleBridgeApiService.cs b/LearningHub.Nhs.WebUI/Interfaces/IMoodleBridgeApiService.cs index e316bbf8..87cb49cf 100644 --- a/LearningHub.Nhs.WebUI/Interfaces/IMoodleBridgeApiService.cs +++ b/LearningHub.Nhs.WebUI/Interfaces/IMoodleBridgeApiService.cs @@ -4,6 +4,7 @@ using System.Threading.Tasks; using LearningHub.Nhs.Models.Moodle; using LearningHub.Nhs.Models.Moodle.API; + using LearningHub.Nhs.Models.User; using LearningHub.Nhs.WebUI.Models; using MoodleCourseCompletionModel = LearningHub.Nhs.Models.Moodle.API.MoodleCourseCompletionModel; @@ -18,5 +19,12 @@ public interface IMoodleBridgeApiService /// The email. /// A representing the result of the asynchronous operation. Task GetUserInstancesByEmail(string email); + + /// + /// UpdateEmail. + /// + /// The updateEmailaddressViewModel. + /// A representing the result of the asynchronous operation. + Task UpdateEmail(UpdateEmailaddressViewModel updateEmailaddressViewModel); } } diff --git a/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj b/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj index e3155ea6..9e1f484c 100644 --- a/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj +++ b/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj @@ -112,7 +112,7 @@ - + diff --git a/LearningHub.Nhs.WebUI/Services/MoodleBridgeApiService.cs b/LearningHub.Nhs.WebUI/Services/MoodleBridgeApiService.cs index f00592e0..6cd57f10 100644 --- a/LearningHub.Nhs.WebUI/Services/MoodleBridgeApiService.cs +++ b/LearningHub.Nhs.WebUI/Services/MoodleBridgeApiService.cs @@ -2,10 +2,12 @@ { using System; using System.Collections.Generic; + using System.Net.Http.Json; using System.Text.Json; using System.Threading.Tasks; using LearningHub.Nhs.Models.Moodle; using LearningHub.Nhs.Models.Moodle.API; + using LearningHub.Nhs.Models.User; using LearningHub.Nhs.WebUI.Configuration; using LearningHub.Nhs.WebUI.Interfaces; using LearningHub.Nhs.WebUI.Models; @@ -63,5 +65,45 @@ public async Task GetUserInstancesByEmail(string return viewmodel; } } + + /// + /// UpdateEmail. + /// + /// The updateEmailaddressViewModel. + /// email update status. + public async Task UpdateEmail(UpdateEmailaddressViewModel updateEmailaddressViewModel) + { + try + { + var client = await this.openApiHttpClient.GetClientAsync(); + + var requestUrl = "MoodleBridge/UpdateEmail"; + + var response = await client.PostAsJsonAsync(requestUrl, updateEmailaddressViewModel) + .ConfigureAwait(false); + + if (response.IsSuccessStatusCode) + { + var viewModel = await response.Content + .ReadFromJsonAsync(); + + return viewModel; + } + else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized || + response.StatusCode == System.Net.HttpStatusCode.Forbidden) + { + throw new Exception("AccessDenied"); + } + else + { + var errorContent = await response.Content.ReadAsStringAsync(); + throw new Exception($"API Error: {response.StatusCode}, Details: {errorContent}"); + } + } + catch (Exception ex) + { + throw new Exception("Failed to update user email on moodle instances"); + } + } } } diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Models/LearningHub.Nhs.OpenApi.Models.csproj b/OpenAPI/LearningHub.Nhs.OpenApi.Models/LearningHub.Nhs.OpenApi.Models.csproj index 90116952..f93a18aa 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Models/LearningHub.Nhs.OpenApi.Models.csproj +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Models/LearningHub.Nhs.OpenApi.Models.csproj @@ -17,7 +17,7 @@ - + diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories.Interface/LearningHub.Nhs.OpenApi.Repositories.Interface.csproj b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories.Interface/LearningHub.Nhs.OpenApi.Repositories.Interface.csproj index 26f2cda9..043795e8 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories.Interface/LearningHub.Nhs.OpenApi.Repositories.Interface.csproj +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories.Interface/LearningHub.Nhs.OpenApi.Repositories.Interface.csproj @@ -17,7 +17,7 @@ - + diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/LearningHub.Nhs.OpenApi.Repositories.csproj b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/LearningHub.Nhs.OpenApi.Repositories.csproj index 5bb10cb7..29d8422f 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/LearningHub.Nhs.OpenApi.Repositories.csproj +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Repositories/LearningHub.Nhs.OpenApi.Repositories.csproj @@ -24,7 +24,7 @@ - + diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/LearningHub.Nhs.OpenApi.Services.Interface.csproj b/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/LearningHub.Nhs.OpenApi.Services.Interface.csproj index 30fb32a5..4f122754 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/LearningHub.Nhs.OpenApi.Services.Interface.csproj +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/LearningHub.Nhs.OpenApi.Services.Interface.csproj @@ -17,7 +17,7 @@ - + diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/Services/IMoodleBridgeApiService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/Services/IMoodleBridgeApiService.cs index a3aa57b0..3bd55103 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/Services/IMoodleBridgeApiService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services.Interface/Services/IMoodleBridgeApiService.cs @@ -4,6 +4,7 @@ using LearningHub.Nhs.Models.Moodle; using LearningHub.Nhs.Models.Moodle.API; using LearningHub.Nhs.Models.MyLearning; +using LearningHub.Nhs.Models.User; namespace LearningHub.Nhs.OpenApi.Services.Interface.Services { @@ -19,6 +20,13 @@ public interface IMoodleBridgeApiService /// A representing the result of the asynchronous operation. Task GetUserInstancesByEmail(string email); + /// + /// UpdateEmail. + /// + /// TheupdateEmailaddressViewModel. + /// + Task UpdateEmail(UpdateEmailaddressViewModel updateEmailaddressViewModel); + /// /// GetRecentEnrolledCoursesAsync. /// diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/LearningHub.Nhs.OpenApi.Services.csproj b/OpenAPI/LearningHub.Nhs.OpenApi.Services/LearningHub.Nhs.OpenApi.Services.csproj index 0faf9ca4..291dbe78 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/LearningHub.Nhs.OpenApi.Services.csproj +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/LearningHub.Nhs.OpenApi.Services.csproj @@ -31,7 +31,7 @@ - + diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleBridgeApiService.cs b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleBridgeApiService.cs index 57fab7f8..80dd7617 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleBridgeApiService.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Services/Services/MoodleBridgeApiService.cs @@ -21,6 +21,7 @@ using static System.Net.WebRequestMethods; using IdentityModel.Client; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; + using LearningHub.Nhs.Models.User; /// /// MoodleBridgeApiService. @@ -84,7 +85,54 @@ public async Task GetUserInstancesByEmail(string catch (Exception ex) { this.logger.LogError(ex, "An error occurred while fetching user instances by email."); - throw; + throw; + } + } + + /// + /// UpdateEmail. + /// + /// The UpdateEmailaddressViewModel. + /// + public async Task UpdateEmail(UpdateEmailaddressViewModel updateEmailaddressViewModel) + { + try + { + var client = await this.moodleBridgeHttpClient.GetClient(); + + var requestUrl = "/api/v1/Users/update-email"; + + var options = new JsonSerializerOptions + { + PropertyNameCaseInsensitive = true + }; + + var response = await client.PostAsJsonAsync(requestUrl, updateEmailaddressViewModel) + .ConfigureAwait(false); + + if (response.IsSuccessStatusCode) + { + var result = await response.Content.ReadAsStringAsync(); + + var viewModel = System.Text.Json.JsonSerializer.Deserialize(result, options); + + return viewModel; + } + else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized || + response.StatusCode == System.Net.HttpStatusCode.Forbidden) + { + throw new Exception("AccessDenied"); + } + else + { + var errorContent = await response.Content.ReadAsStringAsync(); + throw new Exception($"API Error: {response.StatusCode}, Details: {errorContent}"); + } + } + catch (Exception ex) + { + this.logger.LogError(ex, "An error occurred while updating email."); + throw; } } @@ -168,7 +216,7 @@ public async Task GetRecentEnrolledCoursesAsy catch (Exception ex) { this.logger.LogError(ex, "An error occurred while fetching user's recent learning activities "); - throw; + throw; } } @@ -333,7 +381,7 @@ public async Task GetUserCertificateAsync(string { queryParams.Add($"searchterm={Uri.EscapeDataString(filterText)}"); } - + var queryString = queryParams.Any() ? "?" + string.Join("&", queryParams) : string.Empty; @@ -468,7 +516,7 @@ public async Task> GetAllMoodleCategoriesAsync() catch (Exception ex) { this.logger.LogError(ex, "An error occurred while fetching user instances by email."); - throw; + throw; } } @@ -553,7 +601,7 @@ public async Task> GetSubCategoryByCategoryIdAsync(strin catch (Exception ex) { this.logger.LogError(ex, "An error occurred while fetching sub categories by category id."); - throw; + throw; } } } diff --git a/OpenAPI/LearningHub.Nhs.OpenApi.Tests/LearningHub.Nhs.OpenApi.Tests.csproj b/OpenAPI/LearningHub.Nhs.OpenApi.Tests/LearningHub.Nhs.OpenApi.Tests.csproj index d4f07f59..f4251a23 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi.Tests/LearningHub.Nhs.OpenApi.Tests.csproj +++ b/OpenAPI/LearningHub.Nhs.OpenApi.Tests/LearningHub.Nhs.OpenApi.Tests.csproj @@ -11,7 +11,7 @@ - + diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/MoodleBridgeController.cs b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/MoodleBridgeController.cs index f7a0e11d..5f8b6777 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/MoodleBridgeController.cs +++ b/OpenAPI/LearningHub.Nhs.OpenApi/Controllers/MoodleBridgeController.cs @@ -4,6 +4,7 @@ using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using LearningHub.Nhs.OpenApi.Services.Interface.Services; + using LearningHub.Nhs.Models.User; /// /// Moodle Bridge operations. @@ -37,6 +38,19 @@ public async Task GetUserInstancesByEmail(string email) return this.Ok(moodleUser); } + /// + /// The GetMoodle Instances UserIds. + /// + /// The LH user email. + /// The . + [HttpPost] + [Route("UpdateEmail")] + public async Task UpdateEmail([FromBody] UpdateEmailaddressViewModel updateEmailaddressViewModel) + { + var emailUpdateResponse = await this.moodleBridgeApiService.UpdateEmail(updateEmailaddressViewModel); + return this.Ok(emailUpdateResponse); + } + /// /// GetAllMoodleCategoriesAsync. /// diff --git a/OpenAPI/LearningHub.Nhs.OpenApi/LearningHub.NHS.OpenAPI.csproj b/OpenAPI/LearningHub.Nhs.OpenApi/LearningHub.NHS.OpenAPI.csproj index 67b1a634..b4bfab38 100644 --- a/OpenAPI/LearningHub.Nhs.OpenApi/LearningHub.NHS.OpenAPI.csproj +++ b/OpenAPI/LearningHub.Nhs.OpenApi/LearningHub.NHS.OpenAPI.csproj @@ -19,7 +19,7 @@ - + diff --git a/ReportAPI/LearningHub.Nhs.ReportApi.Services.Interface/LearningHub.Nhs.ReportApi.Services.Interface.csproj b/ReportAPI/LearningHub.Nhs.ReportApi.Services.Interface/LearningHub.Nhs.ReportApi.Services.Interface.csproj index c4ab810b..96ff6ae1 100644 --- a/ReportAPI/LearningHub.Nhs.ReportApi.Services.Interface/LearningHub.Nhs.ReportApi.Services.Interface.csproj +++ b/ReportAPI/LearningHub.Nhs.ReportApi.Services.Interface/LearningHub.Nhs.ReportApi.Services.Interface.csproj @@ -16,7 +16,7 @@ - + diff --git a/ReportAPI/LearningHub.Nhs.ReportApi.Services.UnitTests/LearningHub.Nhs.ReportApi.Services.UnitTests.csproj b/ReportAPI/LearningHub.Nhs.ReportApi.Services.UnitTests/LearningHub.Nhs.ReportApi.Services.UnitTests.csproj index eb8f7e4a..70e3e863 100644 --- a/ReportAPI/LearningHub.Nhs.ReportApi.Services.UnitTests/LearningHub.Nhs.ReportApi.Services.UnitTests.csproj +++ b/ReportAPI/LearningHub.Nhs.ReportApi.Services.UnitTests/LearningHub.Nhs.ReportApi.Services.UnitTests.csproj @@ -18,7 +18,7 @@ - + diff --git a/ReportAPI/LearningHub.Nhs.ReportApi.Services/LearningHub.Nhs.ReportApi.Services.csproj b/ReportAPI/LearningHub.Nhs.ReportApi.Services/LearningHub.Nhs.ReportApi.Services.csproj index 8d6b949b..c4944deb 100644 --- a/ReportAPI/LearningHub.Nhs.ReportApi.Services/LearningHub.Nhs.ReportApi.Services.csproj +++ b/ReportAPI/LearningHub.Nhs.ReportApi.Services/LearningHub.Nhs.ReportApi.Services.csproj @@ -19,7 +19,7 @@ - + diff --git a/ReportAPI/LearningHub.Nhs.ReportApi.Shared/LearningHub.Nhs.ReportApi.Shared.csproj b/ReportAPI/LearningHub.Nhs.ReportApi.Shared/LearningHub.Nhs.ReportApi.Shared.csproj index de33549b..d02c4488 100644 --- a/ReportAPI/LearningHub.Nhs.ReportApi.Shared/LearningHub.Nhs.ReportApi.Shared.csproj +++ b/ReportAPI/LearningHub.Nhs.ReportApi.Shared/LearningHub.Nhs.ReportApi.Shared.csproj @@ -17,7 +17,7 @@ - + diff --git a/ReportAPI/LearningHub.Nhs.ReportApi/LearningHub.Nhs.ReportApi.csproj b/ReportAPI/LearningHub.Nhs.ReportApi/LearningHub.Nhs.ReportApi.csproj index 291929c1..5ad3e0d5 100644 --- a/ReportAPI/LearningHub.Nhs.ReportApi/LearningHub.Nhs.ReportApi.csproj +++ b/ReportAPI/LearningHub.Nhs.ReportApi/LearningHub.Nhs.ReportApi.csproj @@ -20,7 +20,7 @@ - + diff --git a/WebAPI/LearningHub.Nhs.API/LearningHub.Nhs.Api.csproj b/WebAPI/LearningHub.Nhs.API/LearningHub.Nhs.Api.csproj index b04f35ac..ce240b56 100644 --- a/WebAPI/LearningHub.Nhs.API/LearningHub.Nhs.Api.csproj +++ b/WebAPI/LearningHub.Nhs.API/LearningHub.Nhs.Api.csproj @@ -29,7 +29,7 @@ - + diff --git a/WebAPI/LearningHub.Nhs.Api.Shared/LearningHub.Nhs.Api.Shared.csproj b/WebAPI/LearningHub.Nhs.Api.Shared/LearningHub.Nhs.Api.Shared.csproj index 4255bc9d..12b01920 100644 --- a/WebAPI/LearningHub.Nhs.Api.Shared/LearningHub.Nhs.Api.Shared.csproj +++ b/WebAPI/LearningHub.Nhs.Api.Shared/LearningHub.Nhs.Api.Shared.csproj @@ -9,7 +9,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/WebAPI/LearningHub.Nhs.Api.UnitTests/LearningHub.Nhs.Api.UnitTests.csproj b/WebAPI/LearningHub.Nhs.Api.UnitTests/LearningHub.Nhs.Api.UnitTests.csproj index 9d001e01..70c6f8f9 100644 --- a/WebAPI/LearningHub.Nhs.Api.UnitTests/LearningHub.Nhs.Api.UnitTests.csproj +++ b/WebAPI/LearningHub.Nhs.Api.UnitTests/LearningHub.Nhs.Api.UnitTests.csproj @@ -11,7 +11,7 @@ - + diff --git a/WebAPI/LearningHub.Nhs.Repository.Interface/LearningHub.Nhs.Repository.Interface.csproj b/WebAPI/LearningHub.Nhs.Repository.Interface/LearningHub.Nhs.Repository.Interface.csproj index 0e845345..0ff75161 100644 --- a/WebAPI/LearningHub.Nhs.Repository.Interface/LearningHub.Nhs.Repository.Interface.csproj +++ b/WebAPI/LearningHub.Nhs.Repository.Interface/LearningHub.Nhs.Repository.Interface.csproj @@ -10,7 +10,7 @@ - + diff --git a/WebAPI/LearningHub.Nhs.Repository/LearningHub.Nhs.Repository.csproj b/WebAPI/LearningHub.Nhs.Repository/LearningHub.Nhs.Repository.csproj index 386a3669..b206c981 100644 --- a/WebAPI/LearningHub.Nhs.Repository/LearningHub.Nhs.Repository.csproj +++ b/WebAPI/LearningHub.Nhs.Repository/LearningHub.Nhs.Repository.csproj @@ -9,7 +9,7 @@ - + diff --git a/WebAPI/LearningHub.Nhs.Services.Interface/LearningHub.Nhs.Services.Interface.csproj b/WebAPI/LearningHub.Nhs.Services.Interface/LearningHub.Nhs.Services.Interface.csproj index f54a7b09..31ce5eb5 100644 --- a/WebAPI/LearningHub.Nhs.Services.Interface/LearningHub.Nhs.Services.Interface.csproj +++ b/WebAPI/LearningHub.Nhs.Services.Interface/LearningHub.Nhs.Services.Interface.csproj @@ -16,7 +16,7 @@ - + all diff --git a/WebAPI/LearningHub.Nhs.Services.UnitTests/LearningHub.Nhs.Services.UnitTests.csproj b/WebAPI/LearningHub.Nhs.Services.UnitTests/LearningHub.Nhs.Services.UnitTests.csproj index 8b77a79f..a91b6e0b 100644 --- a/WebAPI/LearningHub.Nhs.Services.UnitTests/LearningHub.Nhs.Services.UnitTests.csproj +++ b/WebAPI/LearningHub.Nhs.Services.UnitTests/LearningHub.Nhs.Services.UnitTests.csproj @@ -13,7 +13,7 @@ - + diff --git a/WebAPI/LearningHub.Nhs.Services/LearningHub.Nhs.Services.csproj b/WebAPI/LearningHub.Nhs.Services/LearningHub.Nhs.Services.csproj index c01c4460..c44ed1fd 100644 --- a/WebAPI/LearningHub.Nhs.Services/LearningHub.Nhs.Services.csproj +++ b/WebAPI/LearningHub.Nhs.Services/LearningHub.Nhs.Services.csproj @@ -13,7 +13,7 @@ - + diff --git a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.ConsoleApp/LearningHub.Nhs.Migration.ConsoleApp.csproj b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.ConsoleApp/LearningHub.Nhs.Migration.ConsoleApp.csproj index e5abf6ea..a4046694 100644 --- a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.ConsoleApp/LearningHub.Nhs.Migration.ConsoleApp.csproj +++ b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.ConsoleApp/LearningHub.Nhs.Migration.ConsoleApp.csproj @@ -25,7 +25,7 @@ - + all diff --git a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Interface/LearningHub.Nhs.Migration.Interface.csproj b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Interface/LearningHub.Nhs.Migration.Interface.csproj index 39fab187..c2ac38a2 100644 --- a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Interface/LearningHub.Nhs.Migration.Interface.csproj +++ b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Interface/LearningHub.Nhs.Migration.Interface.csproj @@ -9,7 +9,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Models/LearningHub.Nhs.Migration.Models.csproj b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Models/LearningHub.Nhs.Migration.Models.csproj index b91543ad..a10f69fd 100644 --- a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Models/LearningHub.Nhs.Migration.Models.csproj +++ b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Models/LearningHub.Nhs.Migration.Models.csproj @@ -10,7 +10,7 @@ - + all diff --git a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Repository/LearningHub.Nhs.Migration.Staging.Repository.csproj b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Repository/LearningHub.Nhs.Migration.Staging.Repository.csproj index f029a564..ba2b9fc1 100644 --- a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Repository/LearningHub.Nhs.Migration.Staging.Repository.csproj +++ b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.Staging.Repository/LearningHub.Nhs.Migration.Staging.Repository.csproj @@ -9,7 +9,7 @@ - + diff --git a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.UnitTests/LearningHub.Nhs.Migration.UnitTests.csproj b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.UnitTests/LearningHub.Nhs.Migration.UnitTests.csproj index a003bd00..d555f0d1 100644 --- a/WebAPI/MigrationTool/LearningHub.Nhs.Migration.UnitTests/LearningHub.Nhs.Migration.UnitTests.csproj +++ b/WebAPI/MigrationTool/LearningHub.Nhs.Migration.UnitTests/LearningHub.Nhs.Migration.UnitTests.csproj @@ -10,7 +10,7 @@ - + diff --git a/WebAPI/MigrationTool/LearningHub.Nhs.Migration/LearningHub.Nhs.Migration.csproj b/WebAPI/MigrationTool/LearningHub.Nhs.Migration/LearningHub.Nhs.Migration.csproj index 01c107bf..c00e268d 100644 --- a/WebAPI/MigrationTool/LearningHub.Nhs.Migration/LearningHub.Nhs.Migration.csproj +++ b/WebAPI/MigrationTool/LearningHub.Nhs.Migration/LearningHub.Nhs.Migration.csproj @@ -12,7 +12,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive