@@ -36,14 +36,21 @@ public ImportCompetenciesResult PreProcessCompetenciesTable(IXLWorkbook workbook
3636 var competencyRows = table . Rows ( ) . Skip ( 1 ) . Select ( row => new CompetencyTableRow ( table , row ) ) . ToList ( ) ;
3737 var newCompetencyIds = competencyRows . Select ( row => row . ID ?? 0 ) . ToList ( ) ;
3838 var existingIds = frameworkService . GetFrameworkCompetencyOrder ( frameworkId , newCompetencyIds ) ;
39+ var existingGroups = frameworkService
40+ . GetFrameworkCompetencyGroups ( frameworkId )
41+ . Select ( row => row . Name )
42+ . Distinct ( )
43+ . ToList ( ) ;
44+ var newGroups = competencyRows . Select ( row => row . CompetencyGroup ?? "" ) . ToList ( ) ;
3945 foreach ( var competencyRow in competencyRows )
4046 {
41- PreProcessCompetencyRow ( competencyRow , newCompetencyIds , existingIds ) ;
47+ PreProcessCompetencyRow ( competencyRow , newCompetencyIds , existingIds , existingGroups , newGroups ) ;
4248 }
4349 return new ImportCompetenciesResult ( competencyRows ) ;
4450 }
45- private void PreProcessCompetencyRow ( CompetencyTableRow competencyRow , List < int > newIds , List < int > existingIds )
51+ private void PreProcessCompetencyRow ( CompetencyTableRow competencyRow , List < int > newIds , List < int > existingIds , List < string > existingGroups , List < string > newGroups )
4652 {
53+
4754 if ( competencyRow . ID == null )
4855 {
4956 competencyRow . RowStatus = RowStatus . CompetencyInserted ;
@@ -64,6 +71,16 @@ private void PreProcessCompetencyRow(CompetencyTableRow competencyRow, List<int>
6471 {
6572 competencyRow . Reordered = true ;
6673 }
74+ else
75+ {
76+ var groupName = ( string ) ( competencyRow ? . CompetencyGroup ) ;
77+ originalIndex = existingGroups . IndexOf ( groupName ) ;
78+ newIndex = newGroups . IndexOf ( groupName ) ;
79+ if ( originalIndex != newIndex )
80+ {
81+ competencyRow . Reordered = true ;
82+ }
83+ }
6784 }
6885 }
6986 competencyRow . Validate ( ) ;
@@ -124,10 +141,10 @@ internal ImportCompetenciesResult ProcessCompetenciesTable(IXLTable table, int a
124141 if ( reorderCompetenciesOption == 2 )
125142 {
126143 var distinctCompetencyGroups = competenciesRows
127- . Where ( row => ! string . IsNullOrWhiteSpace ( row . CompetencyGroup ) )
128- . Select ( row => row . CompetencyGroup )
129- . Distinct ( )
130- . ToList ( ) ;
144+ . Where ( row => ! string . IsNullOrWhiteSpace ( row . CompetencyGroup ) )
145+ . Select ( row => row . CompetencyGroup )
146+ . Distinct ( )
147+ . ToList ( ) ;
131148 for ( int i = 0 ; i < competencyGroupCount ; i ++ )
132149 {
133150 var existingGroups = frameworkService . GetFrameworkCompetencyGroups ( frameworkId ) . Select ( row => new { row . ID , row . Name } )
@@ -177,6 +194,7 @@ CompetencyTableRow competencyRow
177194 if ( newCompetencyGroupId > 0 )
178195 {
179196 frameworkCompetencyGroupId = frameworkService . InsertFrameworkCompetencyGroup ( newCompetencyGroupId , frameworkId , adminId ) ;
197+ frameworkService . UpdateFrameworkCompetencyFrameworkCompetencyGroup ( competencyRow . ID , ( int ) frameworkCompetencyGroupId , adminId ) ;
180198 if ( frameworkCompetencyGroupId > maxFrameworkCompetencyGroupId )
181199 {
182200 maxFrameworkCompetencyGroupId = ( int ) frameworkCompetencyGroupId ;
@@ -185,6 +203,7 @@ CompetencyTableRow competencyRow
185203 else
186204 {
187205 frameworkCompetencyGroupId = frameworkService . GetFrameworkCompetencyGroupId ( frameworkId , newCompetencyGroupId ) ;
206+
188207 var isUpdated = frameworkService . UpdateFrameworkCompetencyGroup ( ( int ) frameworkCompetencyGroupId , newCompetencyGroupId , competencyRow . CompetencyGroup , competencyRow . GroupDescription , adminId ) ;
189208 competencyRow . RowStatus = RowStatus . CompetencyGroupUpdated ;
190209 }
0 commit comments