public async Task <ActionResult <QuoteRequestSearchResult> > Search([FromBody] QuoteRequestSearchCriteria criteria) { var retVal = await _quoteRequestService.SearchAsync(criteria); return(Ok(retVal)); }
public async Task DoExportAsync(Stream outStream, Action <ExportImportProgressInfo> progressCallback, ICancellationToken cancellationToken) { cancellationToken.ThrowIfCancellationRequested(); var progressInfo = new ExportImportProgressInfo { Description = "loading data..." }; progressCallback(progressInfo); using (var sw = new StreamWriter(outStream, System.Text.Encoding.UTF8)) using (var writer = new JsonTextWriter(sw)) { await writer.WriteStartObjectAsync(); await writer.WritePropertyNameAsync("QuoteRequests"); await writer.SerializeJsonArrayWithPagingAsync(_serializer, _batchSize, async (skip, take) => (GenericSearchResult <QuoteRequest>) await _quoteRequestService.SearchAsync(new QuoteRequestSearchCriteria { Skip = skip, Take = take }) , (processedCount, totalCount) => { progressInfo.Description = $"{ processedCount } of { totalCount } quote requests have been exported"; progressCallback(progressInfo); }, cancellationToken); await writer.WriteEndObjectAsync(); await writer.FlushAsync(); } }