@@ -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