diff --git a/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs b/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs index 8711dd817..bac3461a4 100644 --- a/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs +++ b/LearningHub.Nhs.WebUI/Controllers/MyAccountController.cs @@ -678,29 +678,37 @@ public async Task ChangeCurrentRole([FromQuery] UserJobRoleUpdate return this.View("ChangeCurrentRole", viewModel); } - if (formSubmission && viewModel.SelectedJobRoleId.HasValue) + if (!string.IsNullOrWhiteSpace(viewModel.FilterText)) { - var newRoleId = viewModel.SelectedJobRoleId.Value; - var jobRole = await this.jobRoleService.GetByIdAsync(newRoleId); + var jobRoles = await this.jobRoleService.GetPagedFilteredAsync(viewModel.FilterText, viewModel.CurrentPage, viewModel.PageSize); + viewModel.RoleList = jobRoles.Item2; + viewModel.TotalItems = jobRoles.Item1; + viewModel.HasItems = jobRoles.Item1 > 0; + } - if (jobRole.MedicalCouncilId > 0 && jobRole.MedicalCouncilId < 4) + if (formSubmission) + { + if (viewModel.SelectedJobRoleId.HasValue) { - return this.RedirectToAction(nameof(this.ChangeMedicalCouncilNo), new UserMedicalCouncilNoUpdateViewModel { SelectedJobRoleId = newRoleId }); + var newRoleId = viewModel.SelectedJobRoleId.Value; + var jobRole = await this.jobRoleService.GetByIdAsync(newRoleId); + + if (jobRole.MedicalCouncilId > 0 && jobRole.MedicalCouncilId < 4) + { + return this.RedirectToAction(nameof(this.ChangeMedicalCouncilNo), new UserMedicalCouncilNoUpdateViewModel { SelectedJobRoleId = newRoleId }); + } + else + { + return this.RedirectToAction(nameof(this.ChangeGrade), new UserGradeUpdateViewModel { SelectedJobRoleId = newRoleId }); + } } else { - return this.RedirectToAction(nameof(this.ChangeGrade), new UserGradeUpdateViewModel { SelectedJobRoleId = newRoleId }); + this.ModelState.AddModelError(nameof(viewModel.SelectedJobRoleId), CommonValidationErrorMessages.RoleRequired); + return this.View("ChangeCurrentRole", viewModel); } } - if (!string.IsNullOrWhiteSpace(viewModel.FilterText)) - { - var jobRoles = await this.jobRoleService.GetPagedFilteredAsync(viewModel.FilterText, viewModel.CurrentPage, viewModel.PageSize); - viewModel.RoleList = jobRoles.Item2; - viewModel.TotalItems = jobRoles.Item1; - viewModel.HasItems = jobRoles.Item1 > 0; - } - return this.View("ChangeCurrentRole", viewModel); } @@ -800,26 +808,33 @@ public async Task ChangeGrade([FromQuery] UserGradeUpdateViewMode viewModel.Grade = profile.Grade; viewModel.SelectedJobRole = jobRole.NameWithStaffGroup; viewModel.SelectedMedicalCouncilId = jobRole.MedicalCouncilId; - - if (this.User.IsInRole("BasicUser") || (formSubmission && viewModel.SelectedGradeId.HasValue)) + if (formSubmission) { - var medicalCouncilNoRequired = jobRole.MedicalCouncilId > 0 && jobRole.MedicalCouncilId < 4; - await this.userService.UpdateUserEmployment( - new elfhHub.Nhs.Models.Entities.UserEmployment - { - Id = profile.EmploymentId, - UserId = profile.Id, - JobRoleId = viewModel.SelectedJobRoleId, - MedicalCouncilId = medicalCouncilNoRequired ? jobRole.MedicalCouncilId : null, - MedicalCouncilNo = medicalCouncilNoRequired ? (viewModel.SelectedMedicalCouncilNo ?? profile.MedicalCouncilNo) : null, - GradeId = viewModel.SelectedGradeId, - SpecialtyId = profile.SpecialtyId, - StartDate = profile.JobStartDate, - LocationId = profile.LocationId, - }); + if (this.User.IsInRole("BasicUser") || viewModel.SelectedGradeId.HasValue) + { + var medicalCouncilNoRequired = jobRole.MedicalCouncilId > 0 && jobRole.MedicalCouncilId < 4; + await this.userService.UpdateUserEmployment( + new elfhHub.Nhs.Models.Entities.UserEmployment + { + Id = profile.EmploymentId, + UserId = profile.Id, + JobRoleId = viewModel.SelectedJobRoleId, + MedicalCouncilId = medicalCouncilNoRequired ? jobRole.MedicalCouncilId : null, + MedicalCouncilNo = medicalCouncilNoRequired ? (viewModel.SelectedMedicalCouncilNo ?? profile.MedicalCouncilNo) : null, + GradeId = viewModel.SelectedGradeId, + SpecialtyId = profile.SpecialtyId, + StartDate = profile.JobStartDate, + LocationId = profile.LocationId, + }); - this.ViewBag.SuccessMessage = "Your job details have been changed"; - return this.View("SuccessMessage"); + this.ViewBag.SuccessMessage = "Your job details have been changed"; + return this.View("SuccessMessage"); + } + else + { + this.ModelState.AddModelError(nameof(viewModel.SelectedGradeId), CommonValidationErrorMessages.GradeRequired); + return this.View("ChangeGrade", viewModel); + } } return this.View("ChangeGrade", viewModel);