Exemple #1
0
        public async Task DoImportAsync(Stream inputStream, Action <ExportImportProgressInfo> progressCallback, ICancellationToken cancellationToken)
        {
            cancellationToken.ThrowIfCancellationRequested();

            var progressInfo = new ExportImportProgressInfo {
                Description = "quote requests importing..."
            };

            progressCallback(progressInfo);

            using (var streamReader = new StreamReader(inputStream))
                using (var reader = new JsonTextReader(streamReader))
                {
                    while (reader.Read())
                    {
                        if (reader.TokenType != JsonToken.PropertyName)
                        {
                            continue;
                        }
                        if (reader.Value.ToString() == "QuoteRequests")
                        {
                            await reader.DeserializeJsonArrayWithPagingAsync <QuoteRequest>(_serializer, _batchSize, async items =>
                            {
                                await _quoteRequestService.SaveChangesAsync(items.ToArray());
                            }, processedCount =>
                            {
                                progressInfo.Description = $"{processedCount} Quote requests have been imported";
                                progressCallback(progressInfo);
                            }, cancellationToken);
                        }
                    }
                }
        }
        public async Task <ActionResult <QuoteRequest> > Create([FromBody] QuoteRequest quoteRequest)
        {
            await _quoteRequestService.SaveChangesAsync(new[] { quoteRequest });

            return(Ok(quoteRequest));
        }