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));
        }