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