namespace TCMSDAL.QueryBuilders; /// /// SQL constants for PIE import + PIE sync tracking. /// public static class TCMSImportQB { public const string GET_PIE_SYNC_STATUS = @" SELECT SYNCID AS SyncId, MODULEID AS ModuleId, PIEMODULEID AS PieModuleId, LASTSYNCDATE AS LastSyncDate, SCENARIOSIMPORTED AS ScenariosImported, TENANTID AS TenantId FROM MTCMSPIESYNC WHERE MODULEID = @ModuleId AND TENANTID = @TenantId"; public const string UPSERT_PIE_SYNC = @" MERGE MTCMSPIESYNC AS T USING (SELECT @ModuleId AS MODULEID, @TenantId AS TENANTID) AS S ON (T.MODULEID = S.MODULEID AND T.TENANTID = S.TENANTID) WHEN MATCHED THEN UPDATE SET LASTSYNCDATE = GETUTCDATE(), SCENARIOSIMPORTED = @ScenariosImported, PIEMODULEID = @PieModuleId WHEN NOT MATCHED THEN INSERT (MODULEID, PIEMODULEID, LASTSYNCDATE, SCENARIOSIMPORTED, TENANTID) VALUES (@ModuleId, @PieModuleId, GETUTCDATE(), @ScenariosImported, @TenantId);"; /// Fetch rows for UAT checklist export (joined with run results if run specified). public const string GET_UAT_CHECKLIST_ROWS = @" SELECT TC.TCID AS TcId, ISNULL(F.FEATURENAME, 'General') AS Feature, TC.TITLE AS Scenario, TC.PRIORITY AS Priority, TC.TESTTYPE AS TestType, ISNULL( STUFF(( SELECT ' | ' + S.STEPTEXT FROM MTCMSTESTSTEP S WHERE S.TESTCASEID = TC.TESTCASEID AND S.STEPTYPE = 'Given' AND S.ISACTIVE=1 ORDER BY S.STEPORDER FOR XML PATH('')), 1, 3, ''), '') AS Given, ISNULL( STUFF(( SELECT ' | ' + S.STEPTEXT FROM MTCMSTESTSTEP S WHERE S.TESTCASEID = TC.TESTCASEID AND S.STEPTYPE = 'When' AND S.ISACTIVE=1 ORDER BY S.STEPORDER FOR XML PATH('')), 1, 3, ''), '') AS When, ISNULL( STUFF(( SELECT ' | ' + S.STEPTEXT FROM MTCMSTESTSTEP S WHERE S.TESTCASEID = TC.TESTCASEID AND S.STEPTYPE = 'Then' AND S.ISACTIVE=1 ORDER BY S.STEPORDER FOR XML PATH('')), 1, 3, ''), '') AS Then, RR.EXECUTEDBY AS Tester, RR.RESULT AS Status, RR.NOTES AS Notes FROM MTCMSTESTCASE TC LEFT JOIN MTCMSFEATURE F ON F.FEATUREID = TC.FEATUREID LEFT JOIN TTCMSRUNRESULT RR ON RR.TESTCASEID = TC.TESTCASEID AND (@TestRunId IS NULL OR RR.TESTRUNID = @TestRunId) WHERE TC.MODULEID = @ModuleId AND TC.TENANTID = @TenantId AND TC.ISACTIVE = 1 ORDER BY TC.PRIORITY, TC.TCID"; }