private void ExportDerivativeContractEntity(JsonTextWriter writer, JsonSerializer serializer, PlatformExportManifest manifest, ExportImportProgressInfo progressInfo, Action <ExportImportProgressInfo> progressCallback)
        {
            progressInfo.Description = "Exporting DerivativeContracts...";
            progressCallback(progressInfo);

            var totalCount = _derivativeContractSearchService.SearchDerivativeContracts(new DerivativeContractSearchCriteria {
                Take = 0, Skip = 0
            }).TotalCount;

            writer.WritePropertyName("DerivativeContractsTotalCount");
            writer.WriteValue(totalCount);

            writer.WritePropertyName("DerivativeContracts");
            writer.WriteStartArray();

            for (int i = 0; i < totalCount; i += BatchSize)
            {
                var results = _derivativeContractSearchService.SearchDerivativeContracts(new DerivativeContractSearchCriteria {
                    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} DerivativeContracts exported";
                progressCallback(progressInfo);
            }

            writer.WriteEndArray();
        }
        public IHttpActionResult Search(DerivativeContractSearchCriteria criteria)
        {
            var result = _derivativeContractSearchService.SearchDerivativeContracts(criteria);

            return(Ok(result));
        }