public async Task <IActionResult> Get(string terms, WorkflowStatus?status, string type, DateTime?createdFrom, DateTime?createdTo, int skip, int take = 10) { var filters = new List <SearchFilter>(); if (status.HasValue) { filters.Add(StatusFilter.Equals(status.Value)); } if (createdFrom.HasValue) { filters.Add(DateRangeFilter.After(x => x.CreateTime, createdFrom.Value)); } if (createdTo.HasValue) { filters.Add(DateRangeFilter.Before(x => x.CreateTime, createdTo.Value)); } if (!string.IsNullOrEmpty(type)) { filters.Add(ScalarFilter.Equals(x => x.WorkflowDefinitionId, type)); } var result = await _searchService.Search(terms, skip, take, filters.ToArray()); return(Json(result)); }