using AyaNova.Biz; using AyaNova.DataList; using System.Collections.Generic; namespace AyaNova.KPI { internal class CSROpenList : IAyaKPI { private string _metaQuery = null; private string _dataQuery = null; private string _errorMessage = null; public AuthorizationRoles AllowedRoles { get => AuthorizationRoles.BizAdmin | AuthorizationRoles.BizAdminRestricted | AuthorizationRoles.ServiceRestricted | AuthorizationRoles.Service | AuthorizationRoles.Tech | AuthorizationRoles.TechRestricted; } public string MetaQuery => _metaQuery; public string DataQuery => _dataQuery; public string ErrorMessage => _errorMessage; public void BuildQuery(KPIRequestOptions options, long userId) { var custtags = options.Criteria["custtags"].ToObject>(); bool custtagsany = options.Criteria["custtagsany"].ToObject(); string custTagsWhere = DataListSqlFilterCriteriaBuilder.TagFilterToSqlCriteriaHelper("acustomer.tags", custtags, custtagsany); ; _dataQuery = @$"SELECT row_to_json(t) as res from ( SELECT ACUSTOMERSERVICEREQUEST.DATEREQUESTED, ACUSTOMER.NAME AS CUSTOMERNAME, ACUSTOMERSERVICEREQUEST.NAME AS CSRNAME, ACUSTOMERSERVICEREQUEST.ID, ACUSTOMERSERVICEREQUEST.PRIORITY FROM ACUSTOMERSERVICEREQUEST LEFT JOIN ACUSTOMER ON (ACUSTOMERSERVICEREQUEST.CUSTOMERID = ACUSTOMER.ID) WHERE (ACUSTOMERSERVICEREQUEST.STATUS = 0) {custTagsWhere} ORDER BY ACUSTOMERSERVICEREQUEST.DATEREQUESTED ASC ) t LIMIT {KPIFetcher.KPI_LIST_MAX_ITEMS_TO_RETURN}"; _metaQuery = string.Empty; // @"SELECT row_to_json(t) as res from ( // select name from auser where id = 10 // ) t"; } }//eoc }//eons