diff --git a/DigitalLearningSolutions.Data/DataServices/CentresDataService.cs b/DigitalLearningSolutions.Data/DataServices/CentresDataService.cs index 2a48f0ae3d..f586fc92d6 100644 --- a/DigitalLearningSolutions.Data/DataServices/CentresDataService.cs +++ b/DigitalLearningSolutions.Data/DataServices/CentresDataService.cs @@ -84,7 +84,7 @@ public void UpdateCentreDetailsForSuperAdmin( string centreName, int centreTypeId, int regionId, - string? centreEmail, + string? registrationEmail, string? ipPrefix, bool showOnMap ); @@ -180,7 +180,7 @@ ORDER BY CentreName" c.ContactSurname, c.ContactEmail, c.ContactTelephone, - c.AutoRegisterManagerEmail AS CentreEmail, + c.AutoRegisterManagerEmail AS RegistrationEmail, c.ShowOnMap, c.CMSAdministrators AS CmsAdministratorSpots, c.CMSManagers AS CmsManagerSpots, @@ -192,7 +192,8 @@ ORDER BY CentreName" c.ServerSpaceBytes, cty.CentreType, c.CandidateByteLimit, - c.ContractReviewDate + c.ContractReviewDate, + c.pwEmail as CentreEmail FROM Centres AS c INNER JOIN Regions AS r ON r.RegionID = c.RegionID INNER JOIN ContractTypes AS ct ON ct.ContractTypeID = c.ContractTypeId @@ -232,7 +233,7 @@ FROM Centres AS c c.ContactEmail, c.ContactTelephone, c.pwTelephone AS CentreTelephone, - c.AutoRegisterManagerEmail AS CentreEmail, + c.AutoRegisterManagerEmail AS RegistrationEmail, c.pwPostCode AS CentrePostcode, c.ShowOnMap, c.Long AS Longitude, @@ -253,7 +254,7 @@ FROM Centres AS c c.ServerSpaceBytes, c.CentreTypeID, ctp.CentreType, - c.pwEmail as RegistrationEmail + c.pwEmail as CentreEmail FROM Centres AS c INNER JOIN Regions AS r ON r.RegionID = c.RegionID INNER JOIN ContractTypes AS ct ON ct.ContractTypeID = c.ContractTypeId @@ -472,7 +473,7 @@ public void UpdateCentreDetailsForSuperAdmin( string centreName, int centreTypeId, int regionId, - string? centreEmail, + string? registrationEmail, string? ipPrefix, bool showOnMap ) @@ -482,7 +483,7 @@ bool showOnMap CentreName = @centreName, CentreTypeId = @centreTypeId, RegionId = @regionId, - AutoRegisterManagerEmail = @centreEmail, + AutoRegisterManagerEmail = @registrationEmail, IPPrefix = @ipPrefix, ShowOnMap = @showOnMap WHERE CentreId = @centreId", @@ -491,7 +492,7 @@ bool showOnMap centreName, centreTypeId, regionId, - centreEmail, + registrationEmail, ipPrefix, showOnMap, centreId diff --git a/DigitalLearningSolutions.Web.Tests/Controllers/SuperAdmin/CentresControllerTests.cs b/DigitalLearningSolutions.Web.Tests/Controllers/SuperAdmin/CentresControllerTests.cs index 495ecf0cc3..18105d7dbb 100644 --- a/DigitalLearningSolutions.Web.Tests/Controllers/SuperAdmin/CentresControllerTests.cs +++ b/DigitalLearningSolutions.Web.Tests/Controllers/SuperAdmin/CentresControllerTests.cs @@ -83,7 +83,7 @@ public void EditCentreDetails_updates_centre_and_redirects_with_successful_save( CentreTypeId = 1, CentreType = "NHS Organisation", RegionName = "National", - CentreEmail = "no.email@hee.nhs.uk", + RegistrationEmail = "no.email@hee.nhs.uk", IpPrefix = "12.33.4", ShowOnMap = true, RegionId = 13 @@ -99,7 +99,7 @@ public void EditCentreDetails_updates_centre_and_redirects_with_successful_save( model.CentreName, model.CentreTypeId, model.RegionId, - model.CentreEmail, + model.RegistrationEmail, model.IpPrefix, model.ShowOnMap)) .MustHaveHappenedOnceExactly(); diff --git a/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs b/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs index 7d55d97729..8781d525bf 100644 --- a/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs +++ b/DigitalLearningSolutions.Web/Controllers/SuperAdmin/Centres/CentresController.cs @@ -140,7 +140,7 @@ public IActionResult Index( { var baseUrl = config.GetAppRootPath(); var supportEmail = this.configService.GetConfigValue("SupportEmail"); - baseUrl = baseUrl+"/RegisterAdmin?centreId={centreId}".Replace("{centreId}", item.Centre.CentreId.ToString()); + baseUrl = baseUrl + "/RegisterAdmin?centreId={centreId}".Replace("{centreId}", item.Centre.CentreId.ToString()); Email welcomeEmail = this.passwordResetService.GenerateEmailInviteForCentreManager(centreEntity.Centre.CentreName, centreEntity.Centre.AutoRegisterManagerEmail, baseUrl, supportEmail); centreEntity.Centre.EmailInvite = "mailto:" + string.Join(",", welcomeEmail.To) + "?subject=" + welcomeEmail.Subject + "&body=" + welcomeEmail.Body.TextBody.Replace("&", "%26"); } @@ -295,7 +295,7 @@ public IActionResult EditCentreDetails(EditCentreDetailsSuperAdminViewModel mode model.CentreName.Trim(), model.CentreTypeId, model.RegionId, - model.CentreEmail, + model.RegistrationEmail, model.IpPrefix?.Trim(), model.ShowOnMap ); diff --git a/DigitalLearningSolutions.Web/Services/CentresService.cs b/DigitalLearningSolutions.Web/Services/CentresService.cs index 6f367105b0..d76e112064 100644 --- a/DigitalLearningSolutions.Web/Services/CentresService.cs +++ b/DigitalLearningSolutions.Web/Services/CentresService.cs @@ -52,7 +52,7 @@ public void UpdateCentreDetailsForSuperAdmin( string centreName, int centreTypeId, int regionId, - string? centreEmail, + string? registrationEmail, string? ipPrefix, bool showOnMap ); @@ -227,9 +227,9 @@ public void UpdateCentreManagerDetails(int centreId, string firstName, string la return centresDataService.GetAllCentres(activeOnly); } - public void UpdateCentreDetailsForSuperAdmin(int centreId, string centreName, int centreTypeId, int regionId, string? centreEmail, string? ipPrefix, bool showOnMap) + public void UpdateCentreDetailsForSuperAdmin(int centreId, string centreName, int centreTypeId, int regionId, string? registrationEmail, string? ipPrefix, bool showOnMap) { - centresDataService.UpdateCentreDetailsForSuperAdmin(centreId, centreName, centreTypeId, regionId, centreEmail, ipPrefix, showOnMap); + centresDataService.UpdateCentreDetailsForSuperAdmin(centreId, centreName, centreTypeId, regionId, registrationEmail, ipPrefix, showOnMap); } public CentreSummaryForRoleLimits GetRoleLimitsForCentre(int centreId) diff --git a/DigitalLearningSolutions.Web/ViewModels/SuperAdmin/Centres/EditCentreDetailsSuperAdminViewModel.cs b/DigitalLearningSolutions.Web/ViewModels/SuperAdmin/Centres/EditCentreDetailsSuperAdminViewModel.cs index 8218658e96..9000f85285 100644 --- a/DigitalLearningSolutions.Web/ViewModels/SuperAdmin/Centres/EditCentreDetailsSuperAdminViewModel.cs +++ b/DigitalLearningSolutions.Web/ViewModels/SuperAdmin/Centres/EditCentreDetailsSuperAdminViewModel.cs @@ -19,6 +19,7 @@ public EditCentreDetailsSuperAdminViewModel(Centre centre) IpPrefix = centre.IpPrefix?.Trim(); ShowOnMap = centre.ShowOnMap; RegionId = centre.RegionId; + RegistrationEmail = centre.RegistrationEmail; } public int CentreId { get; set; } @@ -37,5 +38,10 @@ public EditCentreDetailsSuperAdminViewModel(Centre centre) [RegularExpression(@"^[\d.,\s]+$", ErrorMessage = "IP Prefix can contain only digits, stops, commas and spaces")] public string? IpPrefix { get; set; } public bool ShowOnMap { get; set; } + + [MaxLength(250, ErrorMessage = "Email must be 250 characters or fewer")] + [EmailAddress(ErrorMessage = "Enter an email in the correct format, like name@example.com")] + [NoWhitespace(ErrorMessage = "Email must not contain any whitespace characters")] + public string? RegistrationEmail { get; set; } } } diff --git a/DigitalLearningSolutions.Web/Views/SuperAdmin/Centres/EditCentreDetails.cshtml b/DigitalLearningSolutions.Web/Views/SuperAdmin/Centres/EditCentreDetails.cshtml index 8a7d43596d..84b63085bd 100644 --- a/DigitalLearningSolutions.Web/Views/SuperAdmin/Centres/EditCentreDetails.cshtml +++ b/DigitalLearningSolutions.Web/Views/SuperAdmin/Centres/EditCentreDetails.cshtml @@ -14,70 +14,70 @@