Skip to content

Commit c7a6a08

Browse files
committed
TD-5163 modifies the insert competency group method to take an optional framework id
1 parent 23a1901 commit c7a6a08

File tree

3 files changed

+42
-28
lines changed

3 files changed

+42
-28
lines changed

DigitalLearningSolutions.Data/DataServices/FrameworkDataService.cs

Lines changed: 38 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ bool zeroBased
123123
//INSERT DATA
124124
BrandedFramework CreateFramework(DetailFramework detailFramework, int adminId);
125125

126-
int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId);
126+
int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId, int? frameworkId);
127127

128128
int InsertFrameworkCompetencyGroup(int groupId, int frameworkID, int adminId);
129129

@@ -475,7 +475,7 @@ public BrandedFramework CreateFramework(DetailFramework detailFramework, int adm
475475
return new BrandedFramework();
476476
}
477477

478-
var existingFrameworks = (int)connection.ExecuteScalar(
478+
var existingFrameworks = connection.QuerySingle<int>(
479479
@"SELECT COUNT(*) FROM Frameworks WHERE FrameworkName = @frameworkName",
480480
new { frameworkName }
481481
);
@@ -548,7 +548,7 @@ int adminId
548548
return GetBrandedFrameworkByFrameworkId(frameworkId, adminId);
549549
}
550550

551-
public int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId)
551+
public int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId, int? frameworkId)
552552
{
553553
if ((groupName.Length == 0) | (adminId < 1))
554554
{
@@ -558,9 +558,16 @@ public int InsertCompetencyGroup(string groupName, string? groupDescription, int
558558
return -2;
559559
}
560560
groupDescription = (groupDescription?.Trim() == "" ? null : groupDescription);
561-
var existingId = (int)connection.ExecuteScalar(
562-
@"SELECT COALESCE ((SELECT TOP(1)ID FROM CompetencyGroups WHERE [Name] = @groupName AND (@groupDescription IS NULL OR Description = @groupDescription)), 0) AS CompetencyGroupID",
563-
new { groupName, groupDescription }
561+
var existingId = connection.QuerySingle<int>(
562+
@"SELECT COALESCE
563+
((SELECT TOP (1) ID
564+
FROM CompetencyGroups
565+
WHERE (Name = @groupName) AND EXISTS
566+
(SELECT 1 AS Expr1
567+
FROM FrameworkCompetencyGroups
568+
WHERE (CompetencyGroupID = CompetencyGroups.ID) AND (FrameworkID = @frameworkId) OR
569+
(CompetencyGroupID = CompetencyGroups.ID) AND (@frameworkId IS NULL))), 0) AS CompetencyGroupID",
570+
new { groupName, groupDescription, frameworkId }
564571
);
565572
if (existingId > 0)
566573
{
@@ -581,8 +588,15 @@ public int InsertCompetencyGroup(string groupName, string? groupDescription, int
581588
return -1;
582589
}
583590

584-
existingId = (int)connection.ExecuteScalar(
585-
@"SELECT COALESCE ((SELECT TOP(1)ID FROM CompetencyGroups WHERE [Name] = @groupName AND (@groupDescription IS NULL OR Description = @groupDescription)), 0) AS CompetencyGroupID",
591+
existingId = connection.QuerySingle<int>(
592+
@"SELECT COALESCE
593+
((SELECT TOP (1) ID
594+
FROM CompetencyGroups
595+
WHERE (Name = @groupName) AND EXISTS
596+
(SELECT 1 AS Expr1
597+
FROM FrameworkCompetencyGroups
598+
WHERE (CompetencyGroupID = CompetencyGroups.ID) AND (FrameworkID = @frameworkId) OR
599+
(CompetencyGroupID = CompetencyGroups.ID) AND (@frameworkId IS NULL))), 0) AS CompetencyGroupID",
586600
new { groupName, groupDescription }
587601
);
588602
return existingId;
@@ -598,7 +612,7 @@ public int InsertFrameworkCompetencyGroup(int groupId, int frameworkId, int admi
598612
return -2;
599613
}
600614

601-
var existingId = (int)connection.ExecuteScalar(
615+
var existingId = connection.QuerySingle<int>(
602616
@"SELECT COALESCE ((SELECT ID FROM FrameworkCompetencyGroups WHERE CompetencyGroupID = @groupID AND FrameworkID = @frameworkID), 0) AS FrameworkCompetencyGroupID",
603617
new { groupId, frameworkId }
604618
);
@@ -624,7 +638,7 @@ FROM [FrameworkCompetencyGroups]
624638
return -1;
625639
}
626640

627-
existingId = (int)connection.ExecuteScalar(
641+
existingId = connection.QuerySingle<int>(
628642
@"SELECT COALESCE ((SELECT ID FROM FrameworkCompetencyGroups WHERE CompetencyGroupID = @groupID AND FrameworkID = @frameworkID), 0) AS FrameworkCompetencyGroupID",
629643
new { groupId, frameworkId }
630644
);
@@ -671,14 +685,14 @@ public int InsertFrameworkCompetency(
671685
var existingId = 0;
672686
if (frameworkCompetencyGroupID == null)
673687
{
674-
existingId = (int)connection.ExecuteScalar(
688+
existingId = connection.QuerySingle<int>(
675689
@"SELECT COALESCE ((SELECT ID FROM FrameworkCompetencies WHERE [CompetencyID] = @competencyId AND FrameworkCompetencyGroupID IS NULL), 0) AS FrameworkCompetencyID",
676690
new { competencyId, frameworkCompetencyGroupID }
677691
);
678692
}
679693
else
680694
{
681-
existingId = (int)connection.ExecuteScalar(
695+
existingId = connection.QuerySingle<int>(
682696
@"SELECT COALESCE ((SELECT ID FROM FrameworkCompetencies WHERE [CompetencyID] = @competencyId AND FrameworkCompetencyGroupID = @frameworkCompetencyGroupID), 0) AS FrameworkCompetencyID",
683697
new { competencyId, frameworkCompetencyGroupID }
684698
);
@@ -707,14 +721,14 @@ FROM [FrameworkCompetencies]
707721

708722
if (frameworkCompetencyGroupID == null)
709723
{
710-
existingId = (int)connection.ExecuteScalar(
724+
existingId = connection.QuerySingle<int>(
711725
@"SELECT COALESCE ((SELECT ID FROM FrameworkCompetencies WHERE [CompetencyID] = @competencyId AND FrameworkCompetencyGroupID IS NULL), 0) AS FrameworkCompetencyID",
712726
new { competencyId, frameworkCompetencyGroupID }
713727
);
714728
}
715729
else
716730
{
717-
existingId = (int)connection.ExecuteScalar(
731+
existingId = connection.QuerySingle<int>(
718732
@"SELECT COALESCE ((SELECT ID FROM FrameworkCompetencies WHERE [CompetencyID] = @competencyId AND FrameworkCompetencyGroupID = @frameworkCompetencyGroupID), 0) AS FrameworkCompetencyID",
719733
new { competencyId, frameworkCompetencyGroupID }
720734
);
@@ -765,7 +779,7 @@ public int AddCollaboratorToFramework(int frameworkId, string? userEmail, bool c
765779
return -3;
766780
}
767781

768-
var existingId = (int)connection.ExecuteScalar(
782+
var existingId = connection.QuerySingle<int>(
769783
@"SELECT COALESCE
770784
((SELECT ID
771785
FROM FrameworkCollaborators
@@ -815,7 +829,7 @@ FROM FrameworkCollaborators
815829
);
816830
}
817831

818-
existingId = (int)connection.ExecuteScalar(
832+
existingId = connection.QuerySingle<int>(
819833
@"SELECT COALESCE
820834
((SELECT ID
821835
FROM FrameworkCollaborators
@@ -907,7 +921,7 @@ public bool UpdateFrameworkName(int frameworkId, int adminId, string frameworkNa
907921
return false;
908922
}
909923

910-
var existingFrameworks = (int)connection.ExecuteScalar(
924+
var existingFrameworks = connection.QuerySingle<int>(
911925
@"SELECT COUNT(*) FROM Frameworks WHERE FrameworkName = @frameworkName AND ID <> @frameworkId",
912926
new { frameworkName, frameworkId }
913927
);
@@ -1003,7 +1017,7 @@ int adminId
10031017
return;
10041018
}
10051019

1006-
var usedElsewhere = (int)connection.ExecuteScalar(
1020+
var usedElsewhere = connection.QuerySingle<int>(
10071021
@"SELECT COUNT(*) FROM FrameworkCompetencyGroups
10081022
WHERE CompetencyGroupId = @competencyGroupId
10091023
AND ID <> @frameworkCompetencyGroupId",
@@ -1171,14 +1185,14 @@ public void DeleteFrameworkCompetencyGroup(int frameworkCompetencyGroupId, int c
11711185
}
11721186

11731187
//Check if used elsewhere and delete competency group if not:
1174-
var usedElsewhere = (int)connection.ExecuteScalar(
1188+
var usedElsewhere = connection.QuerySingle<int>(
11751189
@"SELECT COUNT(*) FROM FrameworkCompetencyGroups
11761190
WHERE CompetencyGroupId = @competencyGroupId",
11771191
new { competencyGroupId }
11781192
);
11791193
if (usedElsewhere == 0)
11801194
{
1181-
usedElsewhere = (int)connection.ExecuteScalar(
1195+
usedElsewhere = connection.QuerySingle<int>(
11821196
@"SELECT COUNT(*) FROM SelfAssessmentStructure
11831197
WHERE CompetencyGroupId = @competencyGroupId",
11841198
new { competencyGroupId }
@@ -1209,7 +1223,7 @@ public void DeleteFrameworkCompetencyGroup(int frameworkCompetencyGroupId, int c
12091223

12101224
public void DeleteFrameworkCompetency(int frameworkCompetencyId, int adminId)
12111225
{
1212-
var competencyId = (int)connection.ExecuteScalar(
1226+
var competencyId = connection.QuerySingle<int>(
12131227
@"SELECT CompetencyID FROM FrameworkCompetencies WHERE ID = @frameworkCompetencyId",
12141228
new { frameworkCompetencyId }
12151229
);
@@ -1240,14 +1254,14 @@ public void DeleteFrameworkCompetency(int frameworkCompetencyId, int adminId)
12401254
}
12411255

12421256
//Check if used elsewhere and delete competency group if not:
1243-
var usedElsewhere = (int)connection.ExecuteScalar(
1257+
var usedElsewhere = connection.QuerySingle<int>(
12441258
@"SELECT COUNT(*) FROM FrameworkCompetencies
12451259
WHERE CompetencyID = @competencyId",
12461260
new { competencyId }
12471261
);
12481262
if (usedElsewhere == 0)
12491263
{
1250-
usedElsewhere = (int)connection.ExecuteScalar(
1264+
usedElsewhere = connection.QuerySingle<int>(
12511265
@"SELECT COUNT(*) FROM SelfAssessmentStructure
12521266
WHERE CompetencyID = @competencyId",
12531267
new { competencyId }
@@ -1834,7 +1848,7 @@ FROM Competencies AS C INNER JOIN
18341848

18351849
public int GetAdminUserRoleForFrameworkId(int adminId, int frameworkId)
18361850
{
1837-
return (int)connection.ExecuteScalar(
1851+
return connection.QuerySingle<int>(
18381852
@"SELECT CASE WHEN FW.OwnerAdminID = @adminId THEN 3 WHEN fwc.CanModify = 1 THEN 2 WHEN fwc.CanModify = 0 THEN 1 ELSE 0 END AS UserRole
18391853
FROM Frameworks AS FW LEFT OUTER JOIN
18401854
FrameworkCollaborators AS fwc ON fwc.FrameworkID = FW.ID AND fwc.AdminID = @adminId

DigitalLearningSolutions.Web/Services/FrameworkService.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ bool zeroBased
117117
//INSERT DATA
118118
BrandedFramework CreateFramework(DetailFramework detailFramework, int adminId);
119119

120-
int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId);
120+
int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId, int? frameworkId = null);
121121

122122
int InsertFrameworkCompetency(int competencyId, int? frameworkCompetencyGroupID, int adminId, int frameworkId, bool alwaysShowDescription = false);
123123

@@ -597,9 +597,9 @@ public int InsertCompetency(string name, string? description, int adminId)
597597
return frameworkDataService.InsertCompetency(name, description, adminId);
598598
}
599599

600-
public int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId)
600+
public int InsertCompetencyGroup(string groupName, string? groupDescription, int adminId, int? frameworkId)
601601
{
602-
return frameworkDataService.InsertCompetencyGroup(groupName, groupDescription, adminId);
602+
return frameworkDataService.InsertCompetencyGroup(groupName, groupDescription, adminId, frameworkId);
603603
}
604604

605605
public int InsertFrameworkCompetency(int competencyId, int? frameworkCompetencyGroupID, int adminId, int frameworkId, bool alwaysShowDescription = false)

DigitalLearningSolutions.Web/Services/ImportCompetenciesFromFileService.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ CompetencyTableRow competencyRow
132132
int ? frameworkCompetencyGroupId = null;
133133
if (competencyRow.CompetencyGroup != null)
134134
{
135-
int newCompetencyGroupId = frameworkService.InsertCompetencyGroup(competencyRow.CompetencyGroup, competencyRow.GroupDescription, adminUserId);
135+
int newCompetencyGroupId = frameworkService.InsertCompetencyGroup(competencyRow.CompetencyGroup, competencyRow.GroupDescription, adminUserId, frameworkId);
136136
if (newCompetencyGroupId > 0)
137137
{
138138
frameworkCompetencyGroupId = frameworkService.InsertFrameworkCompetencyGroup(newCompetencyGroupId, frameworkId, adminUserId);

0 commit comments

Comments
 (0)