using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace FrameworkDAL.Query.WebService { public static class WebServiceQB { public const string GET_WEB_SERVICE = @"SELECT -- WebService core W.WEBSERVICEID AS WebServiceId, W.WEBSERVICENAME AS WebServiceName, W.SECTION AS WebServiceSection, -- Module W.MODULEID AS ModuleId, M.MODULECODE AS ModuleCode, M.MODULENAME AS ModuleName, -- Description/Template/Method W.DESCRIPTION AS WebServiceDescription, W.URITEMPLATE AS WebServiceUriTemplate, W.METHODTYPE AS WebServiceMethodType, -- Request Schema W.REQUESTSCHEMAID AS RequestSchemaId, RS.ENTITYCODE AS RequestSchemaCode, RS.ENTITYNAME AS RequestSchemaName, -- Response Schema W.RESPONSESCHEMAID AS ResponseSchemaId, RESP.ENTITYCODE AS ResponseSchemaCode, RESP.ENTITYNAME AS ResponseSchemaName, -- HTTP codes W.HTTPCODES AS WebServiceHttpCodes, -- Program W.PROGRAMID AS ProgramId, P.PROGRAMNAME AS ProgramName, P.PROGRAMCLASSID AS ProgramProgramClassId, PC.PROGRAMCLASSNAME AS ProgramProgramClassName, -- Service Program W.SERVICEPROGRAMID AS ServiceProgramId, SP.PROGRAMNAME AS ServiceProgramName, SP.PROGRAMCLASSID AS ServiceProgramProgramClassId, SPC.PROGRAMCLASSNAME AS ServiceProgramProgramClassName, -- Period Filter W.PERIODFILTERTYPE AS WebServicePeriodFilterType, W.PERIODFILTERCHANGEABLE AS WebServicePeriodFilterChangeable, -- Entity W.ENTITYID AS EntityId, E.ENTITYCODE AS EntityCode, E.ENTITYNAME AS EntityName, -- Incharge (mapped to User) W.INCHARGEID AS InchargeId, IU.USERCODE AS InchargeCode, IU.USERNAME AS InchargeName, -- Flags W.ISAUTHORIZATIONREQUIRED AS WebServiceIsAuthorizationRequired, W.REQUESTSCHEMATYPE AS WebServiceRequestSchemaType, -- Audit W.CREATEDBYID AS WebServiceCreatedById, W.CREATEDON AS WebServiceCreatedOn, W.MODIFIEDBYID AS WebServiceModifiedById, W.MODIFIEDON AS WebServiceModifiedOn, CU.USERNAME AS WebServiceCreatedByName, MU.USERNAME AS WebServiceModifiedByName, MU.USERCODE AS WebServiceModifiedByCode, CU.MMAILID AS MailId, -- Sorting/Versioning W.SORTORDER AS WebServiceSortOrder, W.STATUS AS WebServiceStatus, W.VERSION AS WebServiceVersion, W.SOURCETYPE AS WebServiceSourceType, MT.GCMNAME AS WebServiceMethodTypeName FROM MWEBSERVICE W LEFT JOIN MMODULE M ON W.MODULEID = M.MODULEID LEFT JOIN MPROGRAM P ON W.PROGRAMID = P.PROGRAMID LEFT JOIN MPROGRAMCLASS PC ON P.PROGRAMCLASSID = PC.PROGRAMCLASSID LEFT JOIN MPROGRAM SP ON W.SERVICEPROGRAMID = SP.PROGRAMID LEFT JOIN MPROGRAMCLASS SPC ON SP.PROGRAMCLASSID = SPC.PROGRAMCLASSID LEFT JOIN MENTITY RS ON W.REQUESTSCHEMAID = RS.ENTITYID LEFT JOIN MENTITY RESP ON W.RESPONSESCHEMAID = RESP.ENTITYID LEFT JOIN MENTITY E ON W.ENTITYID = E.ENTITYID LEFT JOIN MUSER IU ON W.INCHARGEID = IU.USERID LEFT JOIN MUSER CU ON W.CREATEDBYID = CU.USERID LEFT JOIN MUSER MU ON W.MODIFIEDBYID = MU.USERID LEFT JOIN MGCM MT ON W.METHODTYPE = MT.GCMID WHERE W.WEBSERVICEID = @webserviceid; "; public const string GET_SELECTLIST_WEBSERVICE = @"SELECT A.WEBSERVICEID AS Id, A.WEBSERVICENAME AS Name, A.PROGRAMID AS ProgramId, B.PROGRAMNAME AS ProgramName, A.URITEMPLATE AS UriTemplate FROM MWEBSERVICE A INNER JOIN MPROGRAM B ON A.PROGRAMID = B.PROGRAMID;"; // MWEBSERVICE has no TENANTID column — the endpoint binding is global, same as MENTITY. // METHODTYPE: 0=GET, 1=POST, 2=DELETE (per GB5URITemplate convention used by GetEntityViewer). public const string GET_WEBSERVICEID_BY_ENTITY_AND_METHOD = @"SELECT TOP 1 W.WEBSERVICEID AS WebServiceId FROM MWEBSERVICE W WHERE W.ENTITYID = @EntityId AND W.METHODTYPE = @MethodType AND W.STATUS = 1 ORDER BY W.SORTORDER;"; } }