namespace CMSDAL.Query.ContentContainer; public static class ContentContainerQB { public const string GET_BY_CONTENT = @" SELECT cc.CONTENTCONTAINERID AS ContentContainerId, cc.CONTENTID AS ContentId, cc.CONTAINERTYPEID AS ContainerTypeId, cct.CONTAINERTYPECODE AS ContainerTypeCode, cct.CONTAINERTYPENAME AS ContainerTypeName, cct.ZONEDEFINITIONSJSON AS ZoneDefinitionsJson, cc.POSITIONNO AS PositionNo, cc.CONTAINERLABEL AS ContainerLabel, cc.CSSCLASSJSON AS CssClassJson, cc.STATUS AS Status FROM DBO.TCONTENTCONTAINER cc JOIN DBO.MCONTENTCONTAINERTYPE cct ON cct.CONTAINERTYPEID = cc.CONTAINERTYPEID WHERE cc.CONTENTID = @ContentId AND cc.TENANTID = @TenantId AND cc.STATUS = 1 ORDER BY cc.POSITIONNO"; // SELECT SCOPE_IDENTITY() appended (Site/Page platform Phase 14) — the template // materializer needs the new ContentContainerId back immediately to attach that // container's own blocks; no prior caller relied on the identity being silently discarded. public const string INSERT = @" INSERT INTO DBO.TCONTENTCONTAINER (CONTENTID, CONTAINERTYPEID, POSITIONNO, CONTAINERLABEL, CSSCLASSJSON, STATUS, TENANTID, CREATEDBYID, MODIFIEDBYID) VALUES (@ContentId, @ContainerTypeId, @PositionNo, @ContainerLabel, @CssClassJson, 1, @TenantId, @CreatedById, @ModifiedById); SELECT SCOPE_IDENTITY();"; public const string UPDATE_POSITION = @" UPDATE DBO.TCONTENTCONTAINER SET POSITIONNO = @PositionNo, MODIFIEDBYID = @ModifiedById, MODIFIEDON = GETDATE() WHERE CONTENTCONTAINERID = @ContentContainerId AND TENANTID = @TenantId"; public const string SOFT_DELETE = @" UPDATE DBO.TCONTENTCONTAINER SET STATUS = 0, MODIFIEDBYID = @ModifiedById, MODIFIEDON = GETDATE() WHERE CONTENTCONTAINERID = @ContentContainerId AND TENANTID = @TenantId"; // Deliberately NOT tenant-filtered — used by the cross-tenant guard to discover a Content // row's TRUE owning tenant before attaching a new container to it, regardless of which // tenant the caller claims to be. public const string GET_CONTENT_TENANT = @" SELECT TENANTID FROM DBO.TCONTENT WHERE CONTENTID = @ContentId"; }