88    using  DigitalLearningSolutions . Web . Helpers ; 
99    using  DigitalLearningSolutions . Web . Models . Enums ; 
1010    using  DigitalLearningSolutions . Web . ViewModels . CompetencyAssessments ; 
11+     using  GDS . MultiPageFormData . Enums ; 
1112    using  Microsoft . AspNetCore . Mvc ; 
1213    using  Microsoft . AspNetCore . Mvc . Rendering ; 
1314    using  Microsoft . Extensions . Logging ; 
@@ -82,7 +83,6 @@ public IActionResult ViewCompetencyAssessments(string tabname, string? searchStr
8283                   isWorkforceManager 
8384                   ) ; 
8485            } 
85- 
8686            var  currentTab  =  tabname  ==  "All"  ?  CompetencyAssessmentsTab . AllCompetencyAssessments  :  CompetencyAssessmentsTab . MyCompetencyAssessments ; 
8787            CompetencyAssessmentsViewModel ?  model  =  new  CompetencyAssessmentsViewModel ( 
8888                isWorkforceManager , 
@@ -103,6 +103,11 @@ public IActionResult CompetencyAssessmentName(string actionName, int competencyA
103103        { 
104104            var  adminId  =  GetAdminID ( ) ; 
105105            var  competencyAssessmentBase  =  new  CompetencyAssessmentBase ( ) ; 
106+             if  ( ( frameworkId . HasValue  &&  frameworkId . Value  !=  0  &&  actionName  ==  "New" ) ) 
107+             { 
108+                 var  data  =  new  CompetencyAssessmentFeaturesViewModel ( ) ; 
109+                 SetcompetencyAssessmentFeaturesData ( data ) ; 
110+             } 
106111            if  ( competencyAssessmentId  >  0 ) 
107112            { 
108113                competencyAssessmentBase  =  competencyAssessmentService . GetCompetencyAssessmentBaseById ( competencyAssessmentId ,  adminId ) ; 
@@ -168,8 +173,7 @@ public IActionResult SaveProfileName(CompetencyAssessmentBase competencyAssessme
168173                    } 
169174                    if  ( frameworkId . HasValue  &&  frameworkId . Value  !=  0 
170175                         &&  competencyAssessmentId  !=  0 
171-                          &&  actionName  ==  "Edit" )   return  RedirectToAction ( "CompetencyAssessmentFeatures" ,  new  {  competencyAssessmentId ,  frameworkId  } ) ; 
172-                    
176+                          &&  actionName  ==  "Edit" )  return  RedirectToAction ( "CompetencyAssessmentFeatures" ,  new  {  competencyAssessmentId ,  frameworkId  } ) ; 
173177                } 
174178                return  RedirectToAction ( "ManageCompetencyAssessment" ,  new  {  competencyAssessmentId ,  frameworkId  } ) ; 
175179            } 
@@ -653,18 +657,11 @@ public IActionResult CompetencyAssessmentFeatures(int competencyAssessmentId, in
653657        { 
654658
655659                var  adminId  =  GetAdminID ( ) ; 
656-             if  ( competencyAssessmentId  ==  0 )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  403  } ) ; 
657-             var  competencyAssessment  =  competencyAssessmentService . GetCompetencyAssessmentFeaturesTaskStatus ( competencyAssessmentId ) ; 
658-             if  ( competencyAssessment  !=  null ) 
659-             { 
660-                 var  model  =  new  CompetencyAssessmentFeaturesViewModel ( competencyAssessment ,  frameworkId ) ; 
661-                 return  View ( model ) ; 
662-             } 
663-            
660+             var  data  =  GetcompetencyAssessmentFeaturesData ( ) ; 
661+             if  ( ! string . IsNullOrEmpty ( data . CompetencyAssessmentName ) )  return  View ( data ) ; 
664662                var  competencyAssessmentBase  =  competencyAssessmentService . GetCompetencyAssessmentBaseById ( competencyAssessmentId ,  adminId ) ; 
665663                if  ( competencyAssessmentBase  ==  null )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  500  } ) ; 
666664                if  ( competencyAssessmentBase . UserRole  <  2 )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  403  } ) ; 
667- 
668665                var  baseModel  =  new  CompetencyAssessmentFeaturesViewModel ( competencyAssessmentBase . ID , 
669666                    competencyAssessmentBase . CompetencyAssessmentName , 
670667                    competencyAssessmentBase . UserRole , 
@@ -676,38 +673,58 @@ public IActionResult CompetencyAssessmentFeatures(int competencyAssessmentId, in
676673        public  IActionResult  CompetencyAssessmentFeatures ( CompetencyAssessmentFeaturesViewModel  featuresViewModel ) 
677674        { 
678675            if  ( featuresViewModel  ==  null )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  500  } ) ; 
679-             var  competency  =  competencyAssessmentService . UpdateCompetencyAssessmentFeaturesTaskStatus ( featuresViewModel . ID , 
680-                 featuresViewModel . DescriptionStatus , 
681-                 featuresViewModel . ProviderandCategoryStatus , 
682-                 featuresViewModel . VocabularyStatus , 
683-           featuresViewModel . WorkingGroupStatus , 
684-           featuresViewModel . AllframeworkCompetenciesStatus ) ; 
685-             if  ( ! competency )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  500  } ) ; 
676+             SetcompetencyAssessmentFeaturesData ( featuresViewModel ) ; 
686677            return  RedirectToAction ( "CompetencyAssessmentSummary" ,  new  {  competencyAssessmentId  =  featuresViewModel . ID , featuresViewModel . FrameworkId   } ) ; 
687- 
688678        } 
689679
690680        [ Route ( "/CompetencyAssessments/Framework/{frameworkId}/{competencyAssessmentId}/Summary" ) ] 
691681        public  IActionResult  CompetencyAssessmentSummary ( int  competencyAssessmentId ,  int ?  frameworkId  =  null ) 
692682        { 
693683            if  ( competencyAssessmentService . GetSelfAssessmentStructure ( competencyAssessmentId )  !=  0 )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  410  } ) ; 
694684            if  ( competencyAssessmentId  ==  0 )   return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  403  } ) ; 
695-             var  competencyAssessment  =  competencyAssessmentService . GetCompetencyAssessmentFeaturesTaskStatus ( competencyAssessmentId ) ; 
696-             if  ( competencyAssessment  ==  null )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  500  } ) ; 
697-             var   model   =   new   CompetencyAssessmentFeaturesViewModel ( competencyAssessment ,   frameworkId ) ; 
698-               return  View ( model ) ; 
685+             var  data  =  GetcompetencyAssessmentFeaturesData ( ) ; 
686+             if  ( data  ==  null )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  500  } ) ; 
687+             SetcompetencyAssessmentFeaturesData ( data ) ; 
688+             return  View ( data ) ; 
699689        } 
700690        [ HttpPost ] 
701691        [ Route ( "/CompetencyAssessments/Framework/{frameworkId}/{competencyAssessmentId}/Summary" ) ] 
702692        public  IActionResult  CompetencyAssessmentSummary ( CompetencyAssessmentFeaturesViewModel  competency ) 
703693        { 
704-             if  ( competencyAssessmentService . GetSelfAssessmentStructure ( competency . ID )  !=  0 )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  410  } ) ; 
705-             if  ( competency . ID  ==  0 )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  403  } ) ; 
706-             competencyAssessmentService . UpdateSelfAssessmentFromFramework ( competency . ID  ,  competency . FrameworkId  ) ; 
707-             var  insertSelfAssessment  =   competencyAssessmentService . InsertSelfAssessmentStructure ( competency . ID ,  competency . FrameworkId ) ; 
694+             var  data  =  GetcompetencyAssessmentFeaturesData ( ) ; 
695+             if  ( data . ID  ==  0 )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  403  } ) ; 
696+             if  ( competencyAssessmentService . GetSelfAssessmentStructure ( data . ID )  !=  0 )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  410  } ) ; 
697+             var  features  =  competencyAssessmentService . UpdateCompetencyAssessmentFeaturesTaskStatus ( data . ID , 
698+                data . DescriptionStatus , 
699+                data . ProviderandCategoryStatus , 
700+                data . VocabularyStatus , 
701+                 data . WorkingGroupStatus , 
702+             data . AllframeworkCompetenciesStatus ) ; 
703+             if  ( ! features )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  500  } ) ; 
704+             competencyAssessmentService . UpdateSelfAssessmentFromFramework ( data . ID  ,  data . FrameworkId  ) ; 
705+             var  insertSelfAssessment  =   competencyAssessmentService . InsertSelfAssessmentStructure ( data . ID ,  data . FrameworkId ) ; 
708706            if  ( ! insertSelfAssessment )  return  RedirectToAction ( "StatusCode" ,  "LearningSolutions" ,  new  {  code  =  500  } ) ; 
707+             multiPageFormService . ClearMultiPageFormData ( MultiPageFormDataFeature . AddCustomWebForm ( "AssessmentFeaturesDataCWF" ) ,  TempData ) ; 
708+             TempData . Clear ( ) ; 
709709            return  RedirectToAction ( "ManageCompetencyAssessment" ,  new  {  competencyAssessmentId  =  competency . ID ,  competency . FrameworkId  } ) ; 
710+         } 
711+ 
712+         private  void  SetcompetencyAssessmentFeaturesData ( CompetencyAssessmentFeaturesViewModel  data ) 
713+         { 
714+             multiPageFormService . SetMultiPageFormData ( 
715+                  data , 
716+                  MultiPageFormDataFeature . AddCustomWebForm ( "AssessmentFeaturesDataCWF" ) , 
717+                  TempData 
718+              ) ; 
719+         } 
710720
721+         private  CompetencyAssessmentFeaturesViewModel  GetcompetencyAssessmentFeaturesData ( ) 
722+         { 
723+             var  data  =  multiPageFormService . GetMultiPageFormData < CompetencyAssessmentFeaturesViewModel > ( 
724+                MultiPageFormDataFeature . AddCustomWebForm ( "AssessmentFeaturesDataCWF" ) , 
725+                TempData 
726+            ) . GetAwaiter ( ) . GetResult ( ) ; 
727+             return  data ; 
711728        } 
712729    } 
713730} 
0 commit comments