private void ExportDerivativeContractItemEntity(JsonTextWriter writer, JsonSerializer serializer, PlatformExportManifest manifest, ExportImportProgressInfo progressInfo, Action <ExportImportProgressInfo> progressCallback) { progressInfo.Description = "Exporting DerivativeContractItems..."; progressCallback(progressInfo); var totalCount = _derivativeContractSearchService.SearchDerivativeContractItems(new DerivativeContractItemSearchCriteria { Take = 0, Skip = 0 }).TotalCount; writer.WritePropertyName("DerivativeContractItemsTotalCount"); writer.WriteValue(totalCount); writer.WritePropertyName("DerivativeContractItems"); writer.WriteStartArray(); for (int i = 0; i < totalCount; i += BatchSize) { var results = _derivativeContractSearchService.SearchDerivativeContractItems(new DerivativeContractItemSearchCriteria { Take = BatchSize, Skip = i }).Results; foreach (var result in results) { serializer.Serialize(writer, result); } writer.Flush(); progressInfo.Description = $"{Math.Min(totalCount, i + BatchSize)} of {totalCount} DerivativeContractItems exported"; progressCallback(progressInfo); } writer.WriteEndArray(); }
public IHttpActionResult SearchItems(DerivativeContractItemSearchCriteria criteria) { var result = _derivativeContractSearchService.SearchDerivativeContractItems(criteria); return(Ok(result)); }