This commit is contained in:
2022-03-02 19:51:46 +00:00
parent bd0ff206e4
commit f5e073fe42

View File

@@ -28,39 +28,25 @@ AuthorizationRoles.TechRestricted;
public string ErrorMessage => _errorMessage; public string ErrorMessage => _errorMessage;
public void BuildQuery(KPIRequestOptions options, long userId) public void BuildQuery(KPIRequestOptions options, long userId)
{ {
//build data and meta queries
//validate criteria exists
if (!options.Criteria.ContainsKey("wostatus")) if (!options.Criteria.ContainsKey("wostatus"))
{ {
_errorMessage = "Missing 'wostatus' criteria"; _errorMessage = "Missing 'wostatus' criteria";
return; return;
} }
var wostatus = (int?)options.Criteria["wostatus"];
var wostatus = (int?)options.Criteria["wostatus"];
var wotags = options.Criteria["wotags"].ToObject<List<string>>();
var woitemtags = options.Criteria["woitemtags"].ToObject<List<string>>();
// var dateWhere = DataListSqlFilterCriteriaBuilder.DataFilterToColumnCriteria("aworkorderitemlabor.servicestopdate", UiFieldDataType.DateTime, "no-operator", timeSpan, options.ClientTimeStamp);
string statusWhere = string.Empty; string statusWhere = string.Empty;
if (wostatus != null) if (wostatus != null)
{ {
statusWhere = $"AND LASTSTATUSID = {wostatus}"; statusWhere = $"AND LASTSTATUSID = {wostatus}";
} }
//optional tags var wotags = options.Criteria["wotags"].ToObject<List<string>>();
string woTagsWhere = null; bool wotagsany = options.Criteria["wotagsany"].ToObject<bool>();
if (wotags.Count > 0) var woitemtags = options.Criteria["woitemtags"].ToObject<List<string>>();
woTagsWhere = " AND " + DataListSqlFilterCriteriaBuilder.TagDataFilterToColumnCriteria("aworkorder.tags", DataListFilterComparisonOperator.Contains, string.Join(",", wotags)); bool woitemtagsany = options.Criteria["woitemtagsany"].ToObject<bool>();
string woTagsWhere = DataListSqlFilterCriteriaBuilder.KPITagFilterToSqlCriteria("aworkorder.tags", wotags, wotagsany);
string woItemTagsWhere = DataListSqlFilterCriteriaBuilder.KPITagFilterToSqlCriteria("aworkorderitem.tags", woitemtags, woitemtagsany); ;
string woItemTagsWhere = null;
if (woitemtags.Count > 0)
woItemTagsWhere = " AND " + DataListSqlFilterCriteriaBuilder.TagDataFilterToColumnCriteria("aworkorderitem.tags", DataListFilterComparisonOperator.Contains, string.Join(",", woitemtags));