@@ -678,29 +678,37 @@ public async Task<IActionResult> ChangeCurrentRole([FromQuery] UserJobRoleUpdate
678678 return this . View ( "ChangeCurrentRole" , viewModel ) ;
679679 }
680680
681- if ( formSubmission && viewModel . SelectedJobRoleId . HasValue )
681+ if ( ! string . IsNullOrWhiteSpace ( viewModel . FilterText ) )
682682 {
683- var newRoleId = viewModel . SelectedJobRoleId . Value ;
684- var jobRole = await this . jobRoleService . GetByIdAsync ( newRoleId ) ;
683+ var jobRoles = await this . jobRoleService . GetPagedFilteredAsync ( viewModel . FilterText , viewModel . CurrentPage , viewModel . PageSize ) ;
684+ viewModel . RoleList = jobRoles . Item2 ;
685+ viewModel . TotalItems = jobRoles . Item1 ;
686+ viewModel . HasItems = jobRoles . Item1 > 0 ;
687+ }
685688
686- if ( jobRole . MedicalCouncilId > 0 && jobRole . MedicalCouncilId < 4 )
689+ if ( formSubmission )
690+ {
691+ if ( viewModel . SelectedJobRoleId . HasValue )
687692 {
688- return this . RedirectToAction ( nameof ( this . ChangeMedicalCouncilNo ) , new UserMedicalCouncilNoUpdateViewModel { SelectedJobRoleId = newRoleId } ) ;
693+ var newRoleId = viewModel . SelectedJobRoleId . Value ;
694+ var jobRole = await this . jobRoleService . GetByIdAsync ( newRoleId ) ;
695+
696+ if ( jobRole . MedicalCouncilId > 0 && jobRole . MedicalCouncilId < 4 )
697+ {
698+ return this . RedirectToAction ( nameof ( this . ChangeMedicalCouncilNo ) , new UserMedicalCouncilNoUpdateViewModel { SelectedJobRoleId = newRoleId } ) ;
699+ }
700+ else
701+ {
702+ return this . RedirectToAction ( nameof ( this . ChangeGrade ) , new UserGradeUpdateViewModel { SelectedJobRoleId = newRoleId } ) ;
703+ }
689704 }
690705 else
691706 {
692- return this . RedirectToAction ( nameof ( this . ChangeGrade ) , new UserGradeUpdateViewModel { SelectedJobRoleId = newRoleId } ) ;
707+ this . ModelState . AddModelError ( nameof ( viewModel . SelectedJobRoleId ) , CommonValidationErrorMessages . RoleRequired ) ;
708+ return this . View ( "ChangeCurrentRole" , viewModel ) ;
693709 }
694710 }
695711
696- if ( ! string . IsNullOrWhiteSpace ( viewModel . FilterText ) )
697- {
698- var jobRoles = await this . jobRoleService . GetPagedFilteredAsync ( viewModel . FilterText , viewModel . CurrentPage , viewModel . PageSize ) ;
699- viewModel . RoleList = jobRoles . Item2 ;
700- viewModel . TotalItems = jobRoles . Item1 ;
701- viewModel . HasItems = jobRoles . Item1 > 0 ;
702- }
703-
704712 return this . View ( "ChangeCurrentRole" , viewModel ) ;
705713 }
706714
@@ -800,26 +808,33 @@ public async Task<IActionResult> ChangeGrade([FromQuery] UserGradeUpdateViewMode
800808 viewModel . Grade = profile . Grade ;
801809 viewModel . SelectedJobRole = jobRole . NameWithStaffGroup ;
802810 viewModel . SelectedMedicalCouncilId = jobRole . MedicalCouncilId ;
803-
804- if ( this . User . IsInRole ( "BasicUser" ) || ( formSubmission && viewModel . SelectedGradeId . HasValue ) )
811+ if ( formSubmission )
805812 {
806- var medicalCouncilNoRequired = jobRole . MedicalCouncilId > 0 && jobRole . MedicalCouncilId < 4 ;
807- await this . userService . UpdateUserEmployment (
808- new elfhHub . Nhs . Models . Entities . UserEmployment
809- {
810- Id = profile . EmploymentId ,
811- UserId = profile . Id ,
812- JobRoleId = viewModel . SelectedJobRoleId ,
813- MedicalCouncilId = medicalCouncilNoRequired ? jobRole . MedicalCouncilId : null ,
814- MedicalCouncilNo = medicalCouncilNoRequired ? ( viewModel . SelectedMedicalCouncilNo ?? profile . MedicalCouncilNo ) : null ,
815- GradeId = viewModel . SelectedGradeId ,
816- SpecialtyId = profile . SpecialtyId ,
817- StartDate = profile . JobStartDate ,
818- LocationId = profile . LocationId ,
819- } ) ;
813+ if ( this . User . IsInRole ( "BasicUser" ) || viewModel . SelectedGradeId . HasValue )
814+ {
815+ var medicalCouncilNoRequired = jobRole . MedicalCouncilId > 0 && jobRole . MedicalCouncilId < 4 ;
816+ await this . userService . UpdateUserEmployment (
817+ new elfhHub . Nhs . Models . Entities . UserEmployment
818+ {
819+ Id = profile . EmploymentId ,
820+ UserId = profile . Id ,
821+ JobRoleId = viewModel . SelectedJobRoleId ,
822+ MedicalCouncilId = medicalCouncilNoRequired ? jobRole . MedicalCouncilId : null ,
823+ MedicalCouncilNo = medicalCouncilNoRequired ? ( viewModel . SelectedMedicalCouncilNo ?? profile . MedicalCouncilNo ) : null ,
824+ GradeId = viewModel . SelectedGradeId ,
825+ SpecialtyId = profile . SpecialtyId ,
826+ StartDate = profile . JobStartDate ,
827+ LocationId = profile . LocationId ,
828+ } ) ;
820829
821- this . ViewBag . SuccessMessage = "Your job details have been changed" ;
822- return this . View ( "SuccessMessage" ) ;
830+ this . ViewBag . SuccessMessage = "Your job details have been changed" ;
831+ return this . View ( "SuccessMessage" ) ;
832+ }
833+ else
834+ {
835+ this . ModelState . AddModelError ( nameof ( viewModel . SelectedGradeId ) , CommonValidationErrorMessages . GradeRequired ) ;
836+ return this . View ( "ChangeGrade" , viewModel ) ;
837+ }
823838 }
824839
825840 return this . View ( "ChangeGrade" , viewModel ) ;
0 commit comments