using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FrameworkDAL.Query.Lock { public static class LockQB { // Criteria (ApplyCriteria) is appended directly after "WHERE 1 = 1" below, // so this constant must NOT close the FilteredLock CTE. public const string GET_SELECTLIST_LOCK_BASE = @" WITH FilteredLock AS ( SELECT LOCKID AS Id, LOCKCODE AS Code, LOCKNAME AS Name FROM MLOCK WHERE 1 = 1"; public const string GET_SELECTLIST_LOCK_PAGING_SUFFIX = @" ), PagedLock AS ( SELECT *, ROW_NUMBER() OVER (ORDER BY Id) AS RowNum FROM FilteredLock ) SELECT Id, Code, Name FROM PagedLock WHERE (@firstnumber = -1 AND @maxresult = -1) OR (RowNum BETWEEN @firstnumber AND @maxresult);"; public const string GET_SELECTLIST_LOCK_COUNT_BASE = @" SELECT COUNT(*) FROM MLOCK WHERE 1 = 1"; // GB4 parity: NHibernate GetCondition("Lock.Id", LockId, Equal, ...) — // every MLOCKVALIDATION row for a lock, joined to its parent MLOCK for the header fields // (LockCode/LockName/LockDescription) used by GenericLockValidate's log output. public const string GET_LOCKVALIDATIONS_BY_LOCKID = @" SELECT lv.LOCKVALIDATIONID AS LockValidationId, lv.LOCKID AS LockId, l.LOCKCODE AS LockCode, l.LOCKNAME AS LockName, l.DESCRIPTION AS LockDescription, lv.SLNO AS LockValidationSlNo, lv.DESCRIPTION AS LockValidationDescription, lv.EXPRESSION AS LockValidationExpression, lv.MESSAGE AS LockValidationMessage, lv.SOLUTION AS LockValidationSolution, lv.LEVELS AS LockValidationLevels, lv.SOURCETYPE AS LockValidationSourceType FROM MLOCKVALIDATION lv INNER JOIN MLOCK l ON l.LOCKID = lv.LOCKID WHERE lv.LOCKID = @LockId ORDER BY lv.SLNO"; } }