using System; namespace FrameworkDAL.Query.EIPConversation.EIPRouting { public static class EIPRoutingQB { // MEIPTENANT does not exist — tenant identity is MCLIENT (CLIENTID = TenantId). public const string VALIDATE_TENANT = @" SELECT COUNT(1) FROM MCLIENT WHERE CLIENTID = @TenantId AND STATUS = 1;"; public const string GET_EIPROUTING = @" SELECT R.ROUTINGRULEID AS RoutingRuleId, R.TENANTID AS TenantId, R.CHANNELTYPE AS ChannelType, R.FLOWDEFINITIONID AS FlowId, F.FLOWCODE AS TargetFlowCode, R.PRIORITY AS PriorityOrder, R.MATCHVALUE AS Pattern, R.MATCHTYPE AS MatchType, R.CREATEDBYID AS CreatedById, CB.EMPLOYEENAME AS CreatedByName, R.CREATEDON AS CreatedOn, R.MODIFIEDBYID AS ModifiedById, MB.EMPLOYEENAME AS ModifiedByName, R.MODIFIEDON AS ModifiedOn, R.STATUS AS Status, R.VERSION AS Version FROM MEIPROUTINGRULE R LEFT JOIN MEIPFLOWDEFINITION F ON R.FLOWDEFINITIONID = F.FLOWDEFINITIONID LEFT JOIN MEMPLOYEE CB ON R.CREATEDBYID = CB.EMPLOYEEID LEFT JOIN MEMPLOYEE MB ON R.MODIFIEDBYID = MB.EMPLOYEEID WHERE R.ROUTINGRULEID = @RoutingRuleId AND R.TENANTID = @TenantId;"; // ENDPOINTID is nullable (admin QB inserts don't supply it; CHANNELTYPE is // carried directly on the rule row). Join to MEIPCHANNELENDPOINT dropped. public const string GET_ACTIVE_ROUTING_RULES = @" SELECT R.ROUTINGRULEID AS RoutingRuleId, R.TENANTID AS TenantId, R.CHANNELTYPE AS ChannelType, F.FLOWCODE AS TargetFlowCode, ISNULL(R.PRIORITY, 1) AS PriorityOrder, R.MATCHVALUE AS Pattern, R.MATCHTYPE AS MatchType FROM MEIPROUTINGRULE R INNER JOIN MEIPFLOWDEFINITION F ON R.FLOWDEFINITIONID = F.FLOWDEFINITIONID WHERE R.TENANTID = @TenantId AND R.CHANNELTYPE = @ChannelType AND R.STATUS = 1 AND R.ISACTIVE = 1 ORDER BY ISNULL(R.PRIORITY, 1) ASC;"; public const string GET_SELECTLIST_EIPROUTING = @" SELECT ROUTINGRULEID AS Id, CHANNELTYPE AS Code, MATCHVALUE AS Name FROM MEIPROUTINGRULE WHERE TENANTID = @TenantId AND STATUS = 1;"; public const string SAVE_EIPROUTING = @" INSERT INTO MEIPROUTINGRULE ( ROUTINGRULEID, TENANTID, CHANNELTYPE, FLOWDEFINITIONID, PRIORITY, MATCHVALUE, MATCHTYPE, STATUS, VERSION, CREATEDBYID, CREATEDON, MODIFIEDBYID, MODIFIEDON ) VALUES ( @RoutingRuleId, @TenantId, @ChannelType, @FlowId, @PriorityOrder, @Pattern, @MatchType, @Status, @Version, @CreatedById, @CreatedOn, @ModifiedById, @ModifiedOn );"; public const string UPDATE_EIPROUTING = @" UPDATE MEIPROUTINGRULE SET CHANNELTYPE = @ChannelType, FLOWDEFINITIONID = @FlowId, PRIORITY = @PriorityOrder, MATCHVALUE = @Pattern, MATCHTYPE = @MatchType, STATUS = @Status, VERSION = @Version, MODIFIEDBYID = @ModifiedById, MODIFIEDON = @ModifiedOn WHERE ROUTINGRULEID = @RoutingRuleId AND TENANTID = @TenantId;"; public const string DELETE_EIPROUTING = @" DELETE FROM MEIPROUTINGRULE WHERE ROUTINGRULEID = @RoutingRuleId AND TENANTID = @TenantId;"; } }