Skip to content

Commit b97a74e

Browse files
committed
Resolving post-rebase merge conflict problems
1 parent 36b9da8 commit b97a74e

File tree

4 files changed

+65
-26
lines changed

4 files changed

+65
-26
lines changed

DigitalLearningSolutions.Data/DataServices/FrameworkDataService.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ public class FrameworkDataService : IFrameworkDataService
285285
fwr.ID AS FrameworkReviewID";
286286

287287
private const string BrandedFrameworkFields =
288-
@", FW.Description, (SELECT BrandName
288+
@",(SELECT BrandName
289289
FROM Brands
290290
WHERE (BrandID = FW.BrandID)) AS Brand,
291291
(SELECT CategoryName
@@ -2175,15 +2175,15 @@ public void ArchiveReviewRequest(int reviewId)
21752175
FROM FrameworkCollaborators
21762176
WHERE (FrameworkID = FW.ID) AND (IsDeleted=0)))) AS MyFrameworksCount,
21772177
2178-
(SELECT COUNT(*) FROM SelfAssessments) AS CompetencyAssessmentCount,
2178+
(SELECT COUNT(*) FROM SelfAssessments) AS RoleProfileCount,
21792179
21802180
(SELECT COUNT(*) FROM SelfAssessments AS RP LEFT OUTER JOIN
21812181
SelfAssessmentCollaborators AS RPC ON RPC.SelfAssessmentID = RP.ID AND RPC.AdminID = @adminId
21822182
WHERE (RP.CreatedByAdminID = @adminId) OR
21832183
(@adminId IN
21842184
(SELECT AdminID
21852185
FROM SelfAssessmentCollaborators
2186-
WHERE (SelfAssessmentID = RP.ID)))) AS MyCompetencyAssessmentCount",
2186+
WHERE (SelfAssessmentID = RP.ID)))) AS MyRoleProfileCount",
21872187
new { adminId }
21882188
).FirstOrDefault();
21892189
}
@@ -2193,7 +2193,7 @@ public IEnumerable<DashboardToDoItem> GetDashboardToDoItems(int adminId)
21932193
return connection.Query<DashboardToDoItem>(
21942194
@"SELECT
21952195
FW.ID AS FrameworkID,
2196-
0 AS CompetencyAssessmentID,
2196+
0 AS RoleProfileID,
21972197
FW.FrameworkName AS ItemName,
21982198
AU.Forename + ' ' + AU.Surname + (CASE WHEN AU.Active = 1 THEN '' ELSE ' (Inactive)' END) AS RequestorName,
21992199
FWR.SignOffRequired,

DigitalLearningSolutions.Web/Controllers/FrameworksController/ImportCompetencies.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,9 +245,23 @@ public IActionResult ImportSummarySubmit()
245245
var workbook = new XLWorkbook(filePath);
246246
var results = importCompetenciesFromFileService.ProcessCompetenciesFromFile(workbook, adminId, data.FrameworkId, data.FrameworkVocubulary, data.ReorderCompetenciesOption, data.AddAssessmentQuestionsOption, data.AddCustomAssessmentQuestion ? (int)data.CustomAssessmentQuestionID : 0, data.AddDefaultAssessmentQuestions ? data.DefaultQuestionIDs : []);
247247
data.ImportCompetenciesResult = results;
248+
//TO DO apply ordering changes if required:
249+
if (data.ReorderCompetenciesOption == 2 && data.CompetenciesToReorderCount > 0)
250+
{
251+
252+
}
248253
setBulkUploadData(data);
249254
return RedirectToAction("UploadResults", "Frameworks", new { frameworkId = data.FrameworkId, tabname = data.TabName });
250255
}
256+
[Route("/Framework/{frameworkId}/{tabname}/Import/Results")]
257+
public IActionResult UploadResults()
258+
{
259+
var data = GetBulkUploadData();
260+
FileHelper.DeleteFile(webHostEnvironment, data.CompetenciesFileName);
261+
TempData.Clear();
262+
var model = new ImportCompetenciesResultsViewModel(data.ImportCompetenciesResult, data.FrameworkId, data.FrameworkName, data.FrameworkVocubulary);
263+
return View("Developer/Import/UploadResults", model);
264+
}
251265
[Route("CancelImport")]
252266
public IActionResult CancelImport()
253267
{

DigitalLearningSolutions.Web/Services/FrameworkService.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,14 +119,12 @@ bool zeroBased
119119

120120
int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId, int? frameworkId = null);
121121

122-
int InsertFrameworkCompetency(int competencyId, int? frameworkCompetencyGroupID, int adminId, int frameworkId, bool alwaysShowDescription = false);
123122
int InsertFrameworkCompetency(int competencyId, int? frameworkCompetencyGroupID, int adminId, int frameworkId, bool alwaysShowDescription = false);
124123

125124
IEnumerable<FrameworkCompetency> GetAllCompetenciesForAdminId(string name, int adminId);
126125

127126
int InsertCompetency(string name, string? description, int adminId);
128127

129-
int InsertFrameworkCompetencyGroup(int groupId, int frameworkID, int adminId);
130128
int InsertFrameworkCompetencyGroup(int groupId, int frameworkID, int adminId);
131129

132130
int AddCollaboratorToFramework(int frameworkId, string userEmail, bool canModify, int? centreID);

DigitalLearningSolutions.Web/Services/ImportCompetenciesFromFileService.cs

Lines changed: 47 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ public interface IImportCompetenciesFromFileService
2020
byte[] GetCompetencyFileForFramework(int frameworkId, bool isBlank, string vocabulary);
2121
public ImportCompetenciesResult PreProcessCompetenciesTable(IXLWorkbook workbook, string vocabulary, int frameworkId);
2222
public ImportCompetenciesResult ProcessCompetenciesFromFile(IXLWorkbook workbook, int adminUserId, int frameworkId, string vocabulary, int reorderCompetenciesOption, int addAssessmentQuestionsOption, int customAssessmentQuestionID, List<int> defaultQuestionIds);
23-
public ImportCompetenciesResult ProcessCompetenciesFromFile(IXLWorkbook workbook, int adminUserId, int frameworkId, string vocabulary, int reorderCompetenciesOption, int addAssessmentQuestionsOption, int customAssessmentQuestionID, List<int> defaultQuestionIds);
2423
}
2524
public class ImportCompetenciesFromFileService : IImportCompetenciesFromFileService
2625
{
@@ -72,12 +71,11 @@ private void PreProcessCompetencyRow(CompetencyTableRow competencyRow, List<int>
7271
competencyRow.Validate();
7372
}
7473
public ImportCompetenciesResult ProcessCompetenciesFromFile(IXLWorkbook workbook, int adminUserId, int frameworkId, string vocabulary, int reorderCompetenciesOption, int addAssessmentQuestionsOption, int customAssessmentQuestionID, List<int> defaultQuestionIds)
75-
public ImportCompetenciesResult ProcessCompetenciesFromFile(IXLWorkbook workbook, int adminUserId, int frameworkId, string vocabulary, int reorderCompetenciesOption, int addAssessmentQuestionsOption, int customAssessmentQuestionID, List<int> defaultQuestionIds)
7674
{
7775
int maxFrameworkCompetencyId = frameworkService.GetMaxFrameworkCompetencyID();
7876
int maxFrameworkCompetencyGroupId = frameworkService.GetMaxFrameworkCompetencyGroupID();
7977
var table = OpenCompetenciesTable(workbook, vocabulary);
80-
return ProcessCompetenciesTable(table, adminUserId, frameworkId, maxFrameworkCompetencyId, maxFrameworkCompetencyGroupId, addAssessmentQuestionsOption, customAssessmentQuestionID, defaultQuestionIds);
78+
return ProcessCompetenciesTable(table, adminUserId, frameworkId, maxFrameworkCompetencyId, maxFrameworkCompetencyGroupId, addAssessmentQuestionsOption, reorderCompetenciesOption, customAssessmentQuestionID, defaultQuestionIds);
8179
}
8280
internal IXLTable OpenCompetenciesTable(IXLWorkbook workbook, string vocabulary)
8381
{
@@ -94,7 +92,7 @@ internal IXLTable OpenCompetenciesTable(IXLWorkbook workbook, string vocabulary)
9492
}
9593
return table;
9694
}
97-
internal ImportCompetenciesResult ProcessCompetenciesTable(IXLTable table, int adminUserId, int frameworkId, int maxFrameworkCompetencyId, int maxFrameworkCompetencyGroupId, int addAssessmentQuestionsOption, int customAssessmentQuestionID, List<int> defaultQuestionIds)
95+
internal ImportCompetenciesResult ProcessCompetenciesTable(IXLTable table, int adminUserId, int frameworkId, int maxFrameworkCompetencyId, int maxFrameworkCompetencyGroupId, int addAssessmentQuestionsOption, int reorderCompetenciesOption, int customAssessmentQuestionID, List<int> defaultQuestionIds)
9896
{
9997
var competenciesRows = table.Rows().Skip(1).Select(row => new CompetencyTableRow(table, row)).ToList();
10098
int rowCount = 0;
@@ -122,7 +120,7 @@ internal ImportCompetenciesResult ProcessCompetenciesTable(IXLTable table, int a
122120
.Count();
123121
foreach (var competencyRow in competenciesRows)
124122
{
125-
maxFrameworkCompetencyGroupId = ProcessCompetencyRow(adminUserId, frameworkId, maxFrameworkCompetencyId, maxFrameworkCompetencyGroupId, addAssessmentQuestionsOption, customAssessmentQuestionID, defaultQuestionIds, competencyRow);
123+
maxFrameworkCompetencyGroupId = ProcessCompetencyRow(adminUserId, frameworkId, maxFrameworkCompetencyId, maxFrameworkCompetencyGroupId, addAssessmentQuestionsOption, reorderCompetenciesOption, customAssessmentQuestionID, defaultQuestionIds, competencyRow);
126124
}
127125
// Check for changes to competency group order and apply them if appropriate:
128126
if (reorderCompetenciesOption == 2)
@@ -161,6 +159,7 @@ private int ProcessCompetencyRow(
161159
int maxFrameworkCompetencyId,
162160
int maxFrameworkCompetencyGroupId,
163161
int addAssessmentQuestionsOption,
162+
int reorderCompetenciesOption,
164163
int customAssessmentQuestionID,
165164
List<int> defaultQuestionIds,
166165
CompetencyTableRow competencyRow
@@ -170,10 +169,10 @@ CompetencyTableRow competencyRow
170169
{
171170
return maxFrameworkCompetencyGroupId;
172171
}
173-
int newCompetencyGroupId = 0;
174172
int newCompetencyId = 0;
173+
int newFrameworkCompetencyId = 0;
175174
//If competency group is set, check if competency group exists within framework and add if not and get the Framework Competency Group ID
176-
int ? frameworkCompetencyGroupId = null;
175+
int? frameworkCompetencyGroupId = null;
177176
if (competencyRow.CompetencyGroup != null)
178177
{
179178
newCompetencyGroupId = frameworkService.InsertCompetencyGroup(competencyRow.CompetencyGroup, competencyRow.GroupDescription, adminUserId);
@@ -194,10 +193,10 @@ CompetencyTableRow competencyRow
194193
if (frameworkCompetency != null)
195194
{
196195
newCompetencyId = frameworkCompetency.CompetencyID;
197-
if (frameworkCompetency.Name != competencyRow.Competency || frameworkCompetency.Description != competencyRow.CompetencyDescription || frameworkCompetency.AlwaysShowDescription != competencyRow.AlwaysShowDescription )
196+
if (frameworkCompetency.Name != competencyRow.Competency || frameworkCompetency.Description != competencyRow.CompetencyDescription || frameworkCompetency.AlwaysShowDescription != competencyRow.AlwaysShowDescription)
198197
{
199198
frameworkService.UpdateFrameworkCompetency((int)competencyRow.ID, competencyRow.Competency, competencyRow.CompetencyDescription, adminUserId, competencyRow.AlwaysShowDescription ?? false);
200-
competencyRow.RowStatus = (competencyRow.RowStatus == RowStatus.CompetencyGroupInserted ? RowStatus.CompetencyGroupAndCompetencyUpdated: RowStatus.CompetencyUpdated);
199+
competencyRow.RowStatus = (competencyRow.RowStatus == RowStatus.CompetencyGroupInserted ? RowStatus.CompetencyGroupAndCompetencyUpdated : RowStatus.CompetencyUpdated);
201200
}
202201
else
203202
{
@@ -211,7 +210,7 @@ CompetencyTableRow competencyRow
211210
newCompetencyId = frameworkService.InsertCompetency(competencyRow.Competency, competencyRow.CompetencyDescription, adminUserId);
212211
if (newCompetencyId > 0)
213212
{
214-
var newFrameworkCompetencyId = frameworkService.InsertFrameworkCompetency(newCompetencyId, frameworkCompetencyGroupId, adminUserId, frameworkId, competencyRow.AlwaysShowDescription ?? false); //including always show desc flag
213+
newFrameworkCompetencyId = frameworkService.InsertFrameworkCompetency(newCompetencyId, frameworkCompetencyGroupId, adminUserId, frameworkId, competencyRow.AlwaysShowDescription ?? false); //including always show desc flag
215214
if (newFrameworkCompetencyId > maxFrameworkCompetencyId)
216215
{
217216
competencyRow.RowStatus = (competencyRow.RowStatus == RowStatus.CompetencyGroupInserted ? RowStatus.CompetencyGroupAndCompetencyInserted : RowStatus.CompetencyInserted);
@@ -225,11 +224,12 @@ CompetencyTableRow competencyRow
225224

226225

227226
// If flags are supplied, add them:
228-
if (competencyRow.FlagsCsv != null)
227+
if (!string.IsNullOrWhiteSpace(competencyRow.FlagsCsv.Trim()))
229228
{
230229
var flags = competencyRow.FlagsCsv.Split(',');
231-
int[] flagIds = [];
232-
foreach (var flag in flags) {
230+
var flagIds = new List<int>();
231+
foreach (var flag in flags)
232+
{
233233
int flagId = 0;
234234
var frameworkFlags = frameworkService.GetCompetencyFlagsByFrameworkId(frameworkId, null, null);
235235
if (frameworkFlags.Any())
@@ -239,37 +239,64 @@ CompetencyTableRow competencyRow
239239
if (frameworkFlag.FlagName == flag)
240240
{
241241
flagId = frameworkFlag.FlagId;
242+
break;
242243
}
243244
}
244245
}
245246
if (flagId == 0)
246247
{
247248
flagId = frameworkService.AddCustomFlagToFramework(frameworkId, flag, "Flag", "nhsuk-tag--white");
248249
}
249-
flagIds.Append(flagId);
250+
flagIds.Add(flagId);
250251
}
251-
if (flagIds.Any()) {
252-
frameworkService.UpdateCompetencyFlags(frameworkId, newCompetencyId, flagIds);
252+
if (flagIds.Count > 0)
253+
{
254+
var updated = frameworkService.UpdateCompetencyFlags(frameworkId, newCompetencyId, [.. flagIds]);
255+
if (updated > 0 && competencyRow.RowStatus == RowStatus.Skipped)
256+
{
257+
competencyRow.RowStatus = RowStatus.CompetencyUpdated;
258+
}
253259
}
254260
}
255261

262+
// Reorder competencies if required:
263+
if (reorderCompetenciesOption == 2)
264+
{
265+
var frameworkCompetencyId = (int)competencyRow.ID;
266+
var frameworkCompetency = frameworkService.GetFrameworkCompetencyById(frameworkCompetencyId);
267+
var placesToMove = Math.Abs(frameworkCompetency.Ordering - competencyRow.CompetencyOrderNumber);
268+
269+
if (placesToMove > 0)
270+
{
271+
var direction = frameworkCompetency.Ordering > competencyRow.CompetencyOrderNumber ? "UP" : "DOWN";
272+
273+
for (int i = 0; i < placesToMove; i++)
274+
{
275+
frameworkService.MoveFrameworkCompetency(frameworkCompetencyId, true, direction);
276+
}
277+
278+
competencyRow.Reordered = true;
279+
}
280+
}
256281

257282
// Add assessment questions if necessary:
258283
if (defaultQuestionIds.Count > 0 | customAssessmentQuestionID > 0)
259284
{
260285
if (competencyRow.RowStatus == RowStatus.CompetencyInserted | competencyRow.RowStatus == RowStatus.CompetencyGroupAndCompetencyInserted || addAssessmentQuestionsOption == 2 && competencyRow.RowStatus == RowStatus.CompetencyUpdated | competencyRow.RowStatus == RowStatus.CompetencyGroupAndCompetencyUpdated || addAssessmentQuestionsOption == 3)
261286
{
262-
foreach(var id in defaultQuestionIds)
287+
foreach (var id in defaultQuestionIds)
263288
{
264-
frameworkService.AddCompetencyAssessmentQuestion((int)competencyRow.ID, id, adminUserId);
289+
frameworkService.AddCompetencyAssessmentQuestion(competencyRow.ID ?? newFrameworkCompetencyId, id, adminUserId);
265290
}
266-
if(customAssessmentQuestionID > 0)
291+
if (customAssessmentQuestionID > 0)
267292
{
268-
frameworkService.AddCompetencyAssessmentQuestion((int)competencyRow.ID, customAssessmentQuestionID, adminUserId);
293+
frameworkService.AddCompetencyAssessmentQuestion(competencyRow.ID ?? newFrameworkCompetencyId, customAssessmentQuestionID, adminUserId);
269294
}
270295
}
271296
}
272297

298+
299+
273300
return maxFrameworkCompetencyGroupId;
274301
}
275302

0 commit comments

Comments
 (0)