33using  DigitalLearningSolutions . Web . Helpers ; 
44using  DigitalLearningSolutions . Web . Models ; 
55using  DigitalLearningSolutions . Web . Services ; 
6- using  DigitalLearningSolutions . Web . ViewModels . Frameworks ; 
6+ using  DigitalLearningSolutions . Web . ViewModels . Frameworks . Import ; 
77using  GDS . MultiPageFormData . Enums ; 
88using  Microsoft . AspNetCore . Mvc ; 
99using  System . IO ; 
@@ -16,21 +16,19 @@ public partial class FrameworksController
1616        public  IActionResult  ImportCompetencies ( int  frameworkId ,  string  tabname ,  bool  isNotBlank ) 
1717        { 
1818            var  adminId  =  GetAdminId ( ) ; 
19+             var  framework  =  frameworkService . GetFrameworkDetailByFrameworkId ( frameworkId ,  adminId ) ; 
1920            var  userRole  =  frameworkService . GetAdminUserRoleForFrameworkId ( adminId ,  frameworkId ) ; 
2021            if  ( userRole  <  2 ) 
2122                return  StatusCode ( 403 ) ; 
22-             var  model  =  new  ImportCompetenciesViewModel ( ) 
23-             { 
24-                 FrameworkId  =  frameworkId , 
25-                 IsNotBlank  =  isNotBlank 
26-             } ; 
27-             return  View ( "Developer/ImportCompetencies" ,  model ) ; 
23+             var  model  =  new  ImportCompetenciesViewModel ( framework ,  isNotBlank ) ; 
24+ 
25+             return  View ( "Developer/Import/Index" ,  model ) ; 
2826        } 
29-         public  IActionResult  DownloadCompetencies ( int  frameworkId ,  int  DownloadOption ) 
27+         public  IActionResult  DownloadCompetencies ( int  frameworkId ,  int  DownloadOption ,   string   vocabulary ) 
3028        { 
31-             string  fileName  =  DownloadOption  ==  2  ?  $ "DLS Competencies  for Bulk Update { clockUtility . UtcToday : yyyy-MM-dd} .xlsx"  :  "DLS Competencies  for Bulk Upload.xlsx" ; 
29+             string  fileName  =  DownloadOption  ==  2  ?  $ "DLS { FrameworkVocabularyHelper . VocabularyPlural ( vocabulary ) }  for Bulk Update { clockUtility . UtcToday : yyyy-MM-dd} .xlsx"  :  $ "DLS { FrameworkVocabularyHelper . VocabularyPlural ( vocabulary ) }  for Bulk Upload.xlsx"; 
3230            var  content  =  importCompetenciesFromFileService . GetCompetencyFileForFramework ( 
33-                     frameworkId ,  DownloadOption  ==  2  ?  false  :  true 
31+                     frameworkId ,  DownloadOption  ==  2  ?  false  :  true ,   vocabulary 
3432                ) ; 
3533            return  File ( 
3634                content , 
@@ -40,24 +38,24 @@ public IActionResult DownloadCompetencies(int frameworkId, int DownloadOption)
4038        } 
4139        [ HttpPost ] 
4240        [ Route ( "/Framework/{frameworkId}/{tabname}/Import" ) ] 
43-         [ Route ( "/Framework/{frameworkId}/{tabname}/ImportCompleted " ) ] 
44-         public  IActionResult  StartImport ( ImportCompetenciesViewModel  model ,  string  tabname ,  bool  isNotBlank ) 
41+         [ Route ( "/Framework/{frameworkId}/{tabname}/Import/Uploaded " ) ] 
42+         public  IActionResult  StartImport ( ImportCompetenciesFormData  model ,   int   frameworkId ,  string  tabname ,  bool  isNotBlank ) 
4543        { 
4644            if  ( ! ModelState . IsValid ) 
47-                 return  View ( "Developer/ImportCompetencies " ,  model ) ; 
45+                 return  View ( "Developer/Import/Index " ,  model ) ; 
4846            try 
4947            { 
5048                var  adminUserID  =  User . GetAdminIdKnownNotNull ( ) ; 
5149                var  workbook  =  new  XLWorkbook ( model . ImportFile . OpenReadStream ( ) ) ; 
5250                if  ( ! workbook . Worksheets . Contains ( ImportCompetenciesFromFileService . CompetenciesSheetName ) ) 
5351                { 
5452                    ModelState . AddModelError ( "ImportFile" ,  CommonValidationErrorMessages . InvalidCompetenciesUploadExcelFile ) ; 
55-                     return  View ( "Developer/ImportCompetencies " ,  model ) ; 
53+                     return  View ( "Developer/Import/Index " ,  model ) ; 
5654                } 
5755                var  competenciesFileName  =  FileHelper . UploadFile ( webHostEnvironment ,  model . ImportFile ) ; 
58-                 setupBulkUploadData ( model . FrameworkId ,  adminUserID ,  competenciesFileName ,  tabname ,  isNotBlank ) ; 
56+                 setupBulkUploadData ( frameworkId ,  adminUserID ,  competenciesFileName ,  tabname ,  isNotBlank ) ; 
5957
60-                 return  RedirectToAction ( "ImportCompleted" ,  "Frameworks" ,  new  {  frameworkId   =   model . FrameworkId ,  tabname  } ) ; 
58+                 return  RedirectToAction ( "ImportCompleted" ,  "Frameworks" ,  new  {  frameworkId ,  tabname  } ) ; 
6159            } 
6260            catch  ( DocumentFormat . OpenXml . Packaging . OpenXmlPackageException ) 
6361            { 
@@ -66,10 +64,10 @@ public IActionResult StartImport(ImportCompetenciesViewModel model, string tabna
6664            } 
6765            catch  ( InvalidHeadersException ) 
6866            { 
69-                 return  View ( "Developer/ImportFailed" ) ; 
67+                 return  View ( "Developer/Import/ ImportFailed" ) ; 
7068            } 
7169        } 
72-         [ Route ( "/Framework/{frameworkId}/{tabname}/ImportCompleted " ) ] 
70+         [ Route ( "/Framework/{frameworkId}/{tabname}/Import/Uploaded " ) ] 
7371        public  IActionResult  ImportCompleted ( ) 
7472        { 
7573            var  data  =  GetBulkUploadData ( ) ; 
@@ -78,27 +76,34 @@ public IActionResult ImportCompleted()
7876            var  workbook  =  new  XLWorkbook ( filePath ) ; 
7977            try 
8078            { 
81-                 var  results  =  importCompetenciesFromFileService . PreProcessCompetenciesTable ( workbook ) ; 
82-                 var  resultsModel  =  new  ImportCompetenciesPreProcessViewModel ( results )  {  IsNotBlank  =  data . IsNotBlank ,  TabName  =  data . TabName  } ; 
79+                 var  results  =  importCompetenciesFromFileService . PreProcessCompetenciesTable ( workbook ,   data . FrameworkVocubulary ) ; 
80+                 var  resultsModel  =  new  ImportCompetenciesPreProcessViewModel ( results ,   data )  {  IsNotBlank  =  data . IsNotBlank ,  TabName  =  data . TabName  } ; 
8381                data . CompetenciesToProcessCount  =  resultsModel . ToProcessCount ; 
8482                data . CompetenciesToAddCount  =  resultsModel . CompetenciesToAddCount ; 
8583                data . CompetenciesToUpdateCount  =  resultsModel . CompetenciesToUpdateCount ; 
8684                setBulkUploadData ( data ) ; 
87-                 return  View ( "Developer/ImportCompleted" ,  resultsModel ) ; 
85+                 return  View ( "Developer/Import/ ImportCompleted" ,  resultsModel ) ; 
8886            } 
8987            catch  ( InvalidHeadersException ) 
9088            { 
9189                FileHelper . DeleteFile ( webHostEnvironment ,  data . CompetenciesFileName ) ; 
9290                return  View ( "ImportFailed" ) ; 
9391            } 
9492        } 
93+         [ Route ( "/Framework/{frameworkId}/{tabname}/Import/AssessmentQuestions" ) ] 
94+         public  IActionResult  AddAssessmentQuestions ( ) 
95+         { 
96+             var  data  =  GetBulkUploadData ( ) ; 
9597
98+             return  View ( ) ; 
99+         } 
96100        private  void  setupBulkUploadData ( int  frameworkId ,  int  adminUserID ,  string  competenciessFileName ,  string  tabName ,  bool  isNotBlank ) 
97101        { 
98102            TempData . Clear ( ) ; 
99103            multiPageFormService . ClearMultiPageFormData ( MultiPageFormDataFeature . AddCustomWebForm ( "BulkCompetencyDataCWF" ) ,  TempData ) ; 
104+             var  framework  =  frameworkService . GetFrameworkDetailByFrameworkId ( frameworkId ,  adminUserID ) ; 
100105            var  today  =  clockUtility . UtcToday ; 
101-             var  bulkUploadData  =  new  BulkCompetenciesData ( frameworkId ,  adminUserID ,  competenciessFileName ,  tabName ,  isNotBlank ) ; 
106+             var  bulkUploadData  =  new  BulkCompetenciesData ( framework ,  adminUserID ,  competenciessFileName ,  tabName ,  isNotBlank ) ; 
102107            setBulkUploadData ( bulkUploadData ) ; 
103108        } 
104109        private  void  setBulkUploadData ( BulkCompetenciesData  bulkUploadData ) 
0 commit comments