2828    using  Microsoft . AspNetCore . Mvc . ViewEngines ; 
2929    using  Microsoft . AspNetCore . Mvc . ViewFeatures ; 
3030    using  System . IO ; 
31- 
31+      [ ServiceFilter ( typeof ( RequireProcessAgreementFilter ) ) ] 
3232    public  partial  class  LearningPortalController 
3333    { 
3434        private  const  string  CookieName  =  "DLSSelfAssessmentService" ; 
@@ -70,13 +70,7 @@ public IActionResult SelfAssessment(int selfAssessmentId)
7070
7171            if  ( ! selfAssessment . SelfAssessmentProcessAgreed  &&  selfAssessment . IsSupervised ) 
7272            { 
73-                 var  processmodel  =  new  SelfAssessmentProcessViewModel ( ) 
74-                 { 
75-                     SelfAssessmentID  =  selfAssessmentId , 
76-                     Vocabulary  =  selfAssessment . Vocabulary , 
77-                     VocabPlural  =  FrameworkVocabularyHelper . VocabularyPlural ( selfAssessment . Vocabulary ) 
78-                 } ; 
79-                 return  View ( "SelfAssessments/AgreeSelfAssessmentProcess" ,  processmodel ) ; 
73+                 return  RedirectToAction ( "AgreeSelfAssessmentProcess" ,  new  {  selfAssessmentId  } ) ; 
8074            } 
8175
8276            selfAssessmentService . IncrementLaunchCount ( selfAssessmentId ,  delegateUserId ) ; 
@@ -90,7 +84,30 @@ public IActionResult SelfAssessment(int selfAssessmentId)
9084            return  View ( "SelfAssessments/SelfAssessmentDescription" ,  model ) ; 
9185        } 
9286
93-         [ HttpPost ] 
87+         [ Route ( "/LearningPortal/SelfAssessment/{selfAssessmentId:int}/AgreeProcess" ) ] 
88+         public  IActionResult  AgreeSelfAssessmentProcess ( int  selfAssessmentId ) 
89+         { 
90+             var  delegateUserId  =  User . GetUserIdKnownNotNull ( ) ; 
91+             var  selfAssessment  =  selfAssessmentService . GetSelfAssessmentForCandidateById ( delegateUserId ,  selfAssessmentId ) ; 
92+ 
93+             if  ( selfAssessment  ==  null ) 
94+             { 
95+                 logger . LogWarning ( 
96+                     $ "Attempt to display self assessment process for user { delegateUserId }  with no self assessment"
97+                 ) ; 
98+                 return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  403  } ) ; 
99+             } 
100+ 
101+             var  processmodel  =  new  SelfAssessmentProcessViewModel ( ) 
102+             { 
103+                 SelfAssessmentID  =  selfAssessmentId , 
104+                 Vocabulary  =  selfAssessment . Vocabulary , 
105+                 VocabPlural  =  FrameworkVocabularyHelper . VocabularyPlural ( selfAssessment . Vocabulary ) 
106+             } ; 
107+             return  View ( "SelfAssessments/AgreeSelfAssessmentProcess" ,  processmodel ) ; 
108+         } 
109+ 
110+         [ HttpPost ( "/LearningPortal/SelfAssessment/{selfAssessmentId:int}/AgreeProcess" ) ] 
94111        public  IActionResult  ProcessAgreed ( SelfAssessmentProcessViewModel  model ) 
95112        { 
96113            if  ( ! ModelState . IsValid ) 
@@ -107,13 +124,9 @@ public IActionResult ProcessAgreed(SelfAssessmentProcessViewModel model)
107124                ) ; 
108125                return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  403  } ) ; 
109126            } 
110-             var  supervisors  =  selfAssessmentService . GetAllSupervisorsForSelfAssessmentId ( 
111-                 selfAssessmentId , 
112-                 delegateUserId 
113-             ) . ToList ( ) ; 
114-             var  selfAssessmentDescriptionViewModel  =  new  SelfAssessmentDescriptionViewModel ( selfAssessment ,  supervisors ) ; 
127+             
115128            selfAssessmentService . MarkProgressAgreed ( selfAssessmentId ,  delegateUserId ) ; 
116-             return  View ( "SelfAssessments/SelfAssessmentDescription ",  selfAssessmentDescriptionViewModel ) ; 
129+             return  RedirectToAction ( "SelfAssessment ",  new   {   selfAssessmentId   } ) ; 
117130
118131        } 
119132
0 commit comments