Skip to content

Commit 05bff2b

Browse files
TD-4336: Scenario when a single resource is added as external reference is added issue handled
1 parent 0efcb1a commit 05bff2b

File tree

1 file changed

+43
-6
lines changed

1 file changed

+43
-6
lines changed

WebAPI/LearningHub.Nhs.Database/Stored Procedures/Hierarchy/CheckCatalogueHasExternalReference.sql

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ AS
1717

1818
BEGIN
1919
;WITH
20-
cteExternalReference(NodeId, ParentNodeId, PrimaryCatalogueNodeId, InitialNodePath)
20+
cteNode(NodeId, ParentNodeId, PrimaryCatalogueNodeId, InitialNodePath)
2121
AS
2222
(
2323
SELECT
@@ -50,7 +50,7 @@ BEGIN
5050
INNER JOIN
5151
hierarchy.[Node] n ON nl.ChildNodeId = n.Id
5252
INNER JOIN
53-
cteExternalReference cte ON nl.ParentNodeId = cte.NodeId
53+
cteNode cte ON nl.ParentNodeId = cte.NodeId
5454
INNER JOIN
5555
hierarchy.NodeVersion nv ON n.CurrentNodeVersionId = nv.Id
5656
WHERE
@@ -59,10 +59,47 @@ BEGIN
5959
AND n.Deleted = 0
6060
AND nl.Deleted = 0
6161
62-
)
62+
),
6363
64-
SELECT @HasExternalCatalogueReference=case when count(distinct cte.PrimaryCatalogueNodeId ) > 1 then 1 ELSE 0 END
65-
FROM
66-
cteExternalReference cte
64+
cteResource
65+
AS (
66+
SELECT cte.PrimaryCatalogueNodeId
67+
FROM
68+
cteNode cte
69+
UNION
70+
71+
SELECT
72+
rv.PrimaryCatalogueNodeId AS PrimaryCatalogueNodeId
73+
FROM
74+
hierarchy.NodePath np
75+
INNER JOIN
76+
hierarchy.NodeResource nr ON np.NodeId = nr.NodeId
77+
INNER JOIN
78+
resources.[Resource] r ON nr.ResourceId = r.Id
79+
INNER JOIN
80+
resources.ResourceVersion rv ON rv.resourceId = nr.ResourceId
81+
LEFT JOIN
82+
resources.ResourceReference rr ON rr.ResourceId = nr.ResourceId AND rr.NodePathId = np.Id AND rr.Deleted = 0
83+
LEFT JOIN
84+
resources.VideoResourceVersion vrv ON vrv.ResourceVersionId = rv.Id AND vrv.Deleted = 0
85+
LEFT JOIN
86+
resources.AudioResourceVersion arv ON arv.ResourceVersionId = rv.Id AND arv.Deleted = 0
87+
LEFT JOIN
88+
resources.ResourceVersionEvent rve ON rve.ResourceVersionId = rv.Id AND rve.ResourceVersionEventTypeId = 6 /* Unpublished by admin */
89+
LEFT JOIN
90+
resources.ResourceVersion rvd ON r.Id = rvd.ResourceId AND rvd.Id > rv.Id AND rvd.Deleted = 0
91+
WHERE
92+
np.CatalogueNodeId = @CatalogueNodeId
93+
and rv.PrimaryCatalogueNodeId <>np.CatalogueNodeId
94+
AND r.CurrentResourceVersionId IS not NULL
95+
AND nr.VersionStatusId=2
96+
AND nr.Deleted = 0
97+
AND r.Deleted = 0
98+
AND rv.Deleted = 0
99+
)
100+
SELECT @HasExternalCatalogueReference=case when count(distinct cte.PrimaryCatalogueNodeId ) > 1 then 1 ELSE 0 END
101+
102+
FROM
103+
cteResource cte
67104
END
68105
GO

0 commit comments

Comments
 (0)