@@ -391,7 +391,7 @@ public IActionResult ReviewDelegateSelfAssessment(int supervisorDelegateId, int
391391 foreach ( var competency in competencies )
392392 {
393393 competency . CompetencyFlags = flags . Where ( f => f . CompetencyId == competency . Id ) ;
394- } ;
394+ }
395395
396396 if ( superviseDelegate . DelegateUserID != null )
397397 {
@@ -784,48 +784,69 @@ public IActionResult EnrolSetRoleProfile(int supervisorDelegateId, int selfAsses
784784 } ;
785785 return View ( "EnrolDelegateOnProfileAssessment" , model ) ;
786786 }
787- var retirementDate = selfAssessmentService . GetSelfAssessmentById ( selfAssessmentID ) . RetirementDate ;
788- if ( retirementDate ? . Date is DateTime date && date >= DateTime . Today &&
789- date <= DateTime . Today . AddDays ( 14 ) )
790- {
791- var model = new RetiringSelfAssessmentViewModel ( )
792- {
793- SelfAssessmentID = selfAssessmentID ,
794- SupervisorDelegateID = supervisorDelegateId ,
795- RetirementDate = retirementDate
796- } ;
797- return View ( "ConfirmRetiringSelfAssessment" , model ) ;
798- }
799787
800788 sessionEnrolOnRoleProfile . SelfAssessmentID = selfAssessmentID ;
801789 multiPageFormService . SetMultiPageFormData (
802790 sessionEnrolOnRoleProfile ,
803791 MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
804792 TempData
805793 ) ;
794+
795+ var retirementDate = selfAssessmentService . GetSelfAssessmentById ( selfAssessmentID ) . RetirementDate ;
796+ if ( CheckRetirementDate ( retirementDate ) )
797+ {
798+ return RedirectToAction ( "ConfirmRetiringSelfAssessment" , "Supervisor" , new { supervisorDelegateId } ) ;
799+ }
800+
806801 return RedirectToAction (
807802 "EnrolDelegateCompleteBy" ,
808803 "Supervisor" ,
809804 new { supervisorDelegateId = supervisorDelegateId }
810805 ) ;
811806 }
812807
813- [ HttpPost ]
814- public IActionResult RetiringSelfAssessmentConfirmed ( RetiringSelfAssessmentViewModel retiringSelfAssessment )
808+ [ Route ( "/Supervisor/Staff/{supervisorDelegateId}/ProfileAssessment/Enrol/Confirm" ) ]
809+ public IActionResult ConfirmRetiringSelfAssessment ( int supervisorDelegateId )
815810 {
816- if ( ModelState . IsValid && retiringSelfAssessment . ActionConfirmed )
811+ var sessionEnrolOnRoleProfile = multiPageFormService . GetMultiPageFormData < SessionEnrolOnRoleProfile > (
812+ MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
813+ TempData
814+ ) . GetAwaiter ( ) . GetResult ( ) ;
815+
816+ var retirementDate = selfAssessmentService . GetSelfAssessmentById ( ( int ) sessionEnrolOnRoleProfile . SelfAssessmentID ) . RetirementDate ;
817+ if ( ! CheckRetirementDate ( ( retirementDate ) ) )
817818 {
818- var sessionEnrolOnRoleProfile = multiPageFormService . GetMultiPageFormData < SessionEnrolOnRoleProfile > (
819+ return RedirectToAction ( "StatusCode" , "LearningSolutions" , new { code = 410 } ) ;
820+ }
821+ var model = new RetiringSelfAssessmentViewModel ( )
822+ {
823+ SelfAssessmentID = ( int ) sessionEnrolOnRoleProfile . SelfAssessmentID ,
824+ SupervisorDelegateID = supervisorDelegateId ,
825+ RetirementDate = retirementDate ,
826+ ActionConfirmed = sessionEnrolOnRoleProfile . ActionConfirmed
827+ } ;
828+ return View ( "ConfirmRetiringSelfAssessment" , model ) ;
829+ }
830+
831+ [ HttpPost ]
832+ [ Route ( "/Supervisor/Staff/{supervisorDelegateId}/ProfileAssessment/Enrol/Confirm" ) ]
833+ public IActionResult ConfirmRetiringSelfAssessment ( RetiringSelfAssessmentViewModel retiringSelfAssessment )
834+ {
835+ var sessionEnrolOnRoleProfile = multiPageFormService . GetMultiPageFormData < SessionEnrolOnRoleProfile > (
819836 MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
820837 TempData
821838 ) . GetAwaiter ( ) . GetResult ( ) ;
822839
823- sessionEnrolOnRoleProfile . SelfAssessmentID = retiringSelfAssessment . SelfAssessmentID ;
824- multiPageFormService . SetMultiPageFormData (
825- sessionEnrolOnRoleProfile ,
826- MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
827- TempData
828- ) ;
840+ sessionEnrolOnRoleProfile . SelfAssessmentID = retiringSelfAssessment . SelfAssessmentID ;
841+ sessionEnrolOnRoleProfile . ActionConfirmed = retiringSelfAssessment . ActionConfirmed ;
842+ multiPageFormService . SetMultiPageFormData (
843+ sessionEnrolOnRoleProfile ,
844+ MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
845+ TempData
846+ ) ;
847+
848+ if ( ModelState . IsValid && retiringSelfAssessment . ActionConfirmed )
849+ {
829850 return RedirectToAction (
830851 "EnrolDelegateCompleteBy" ,
831852 "Supervisor" ,
@@ -850,19 +871,21 @@ public IActionResult EnrolDelegateCompleteBy(int supervisorDelegateId, int? day,
850871 MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
851872 TempData
852873 ) . GetAwaiter ( ) . GetResult ( ) ;
853- multiPageFormService . SetMultiPageFormData (
854- sessionEnrolOnRoleProfile ,
855- MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
856- TempData
857- ) ;
874+
875+ var retirementDate = selfAssessmentService . GetSelfAssessmentById ( ( int ) sessionEnrolOnRoleProfile . SelfAssessmentID ) . RetirementDate ;
876+ if ( CheckRetirementDate ( retirementDate ) && ! sessionEnrolOnRoleProfile . ActionConfirmed )
877+ {
878+ return RedirectToAction ( "ConfirmRetiringSelfAssessment" , "Supervisor" , new { supervisorDelegateId } ) ;
879+ }
858880 var supervisorDelegate =
859881 supervisorService . GetSupervisorDelegateDetailsById ( supervisorDelegateId , GetAdminId ( ) , 0 ) ;
860882 var roleProfile = supervisorService . GetRoleProfileById ( ( int ) sessionEnrolOnRoleProfile . SelfAssessmentID ) ;
861883 var model = new EnrolDelegateSetCompletByDateViewModel ( )
862884 {
863885 SupervisorDelegateDetail = supervisorDelegate ,
864886 RoleProfile = roleProfile ,
865- CompleteByDate = sessionEnrolOnRoleProfile . CompleteByDate
887+ CompleteByDate = sessionEnrolOnRoleProfile . CompleteByDate ,
888+ ActionConfirmed = sessionEnrolOnRoleProfile . ActionConfirmed
866889 } ;
867890 if ( day != null && month != null && year != null )
868891 {
@@ -1008,6 +1031,13 @@ public IActionResult EnrolDelegateSummary(int supervisorDelegateId)
10081031 MultiPageFormDataFeature . EnrolDelegateOnProfileAssessment ,
10091032 TempData
10101033 ) ;
1034+
1035+ var retirementDate = selfAssessmentService . GetSelfAssessmentById ( ( int ) sessionEnrolOnRoleProfile . SelfAssessmentID ) . RetirementDate ;
1036+ if ( CheckRetirementDate ( retirementDate ) && ! sessionEnrolOnRoleProfile . ActionConfirmed )
1037+ {
1038+ return RedirectToAction ( "ConfirmRetiringSelfAssessment" , "Supervisor" , new { supervisorDelegateId } ) ;
1039+ }
1040+
10111041 var supervisorDelegate =
10121042 supervisorService . GetSupervisorDelegateDetailsById ( supervisorDelegateId , GetAdminId ( ) , 0 ) ;
10131043 var roleProfile = supervisorService . GetRoleProfileById ( ( int ) sessionEnrolOnRoleProfile . SelfAssessmentID ) ;
@@ -1035,6 +1065,7 @@ public IActionResult EnrolDelegateSummary(int supervisorDelegateId)
10351065 ViewBag . completeByMonth = TempData [ "completeByMonth" ] ;
10361066 ViewBag . completeByYear = TempData [ "completeByYear" ] ;
10371067 ViewBag . navigatedFrom = TempData [ "navigatedFrom" ] ;
1068+ ViewBag . actionConfirmed = sessionEnrolOnRoleProfile . ActionConfirmed ;
10381069 return View ( "EnrolDelegateSummary" , model ) ;
10391070 }
10401071
@@ -1558,5 +1589,15 @@ private static string RenderRazorViewToString(Controller controller, string view
15581589 return sw . GetStringBuilder ( ) . ToString ( ) ;
15591590 }
15601591 }
1592+
1593+ private bool CheckRetirementDate ( DateTime ? date )
1594+ {
1595+ if ( date == null )
1596+ return false ;
1597+
1598+ DateTime retirementOffsetDate = DateTime . Today . AddDays ( 14 ) ;
1599+ DateTime today = DateTime . Today ;
1600+ return ( date >= today && date <= retirementOffsetDate ) ;
1601+ }
15611602 }
15621603}
0 commit comments