public async Task <ActionResult <ImportDataPreview> > GetImportPreview([FromBody] ImportDataPreviewRequest request) { if (request.FilePath.IsNullOrEmpty()) { return(BadRequest($"{nameof(request.FilePath)} can not be null")); } var blobInfo = await _blobStorageProvider.GetBlobInfoAsync(request.FilePath); if (blobInfo == null) { return(BadRequest("Blob with the such url does not exist.")); } using var csvDataSource = _csvPagedPriceDataSourceFactory.Create(request.FilePath, 10); var result = new ImportDataPreview { TotalCount = csvDataSource.GetTotalCount() }; await csvDataSource.FetchAsync(); result.Results = csvDataSource.Items; return(Ok(result)); }
public async Task <ActionResult <ImportDataPreview> > GetImportPreview([FromBody] ImportDataPreviewRequest request) { if (request.FilePath.IsNullOrEmpty()) { return(BadRequest($"{nameof(request.FilePath)} can not be null")); } var blobInfo = await _blobStorageProvider.GetBlobInfoAsync(request.FilePath); if (blobInfo == null) { return(BadRequest("Blob with the such url does not exist.")); } var result = new ImportDataPreview(); switch (request.DataType) { case nameof(Contact): using (var csvDataSource = await _customerImportPagedDataSourceFactory.CreateAsync <ImportableContact, Contact>(request.FilePath, 10, null)) { result.TotalCount = csvDataSource.GetTotalCount(); await csvDataSource.FetchAsync(); result.Results = csvDataSource.Items.Select(item => item.Record).ToArray(); } break; case nameof(Organization): using (var csvDataSource = await _customerImportPagedDataSourceFactory.CreateAsync <ImportableOrganization, Organization>(request.FilePath, 10, null)) { result.TotalCount = csvDataSource.GetTotalCount(); await csvDataSource.FetchAsync(); result.Results = csvDataSource.Items.Select(item => item.Record).ToArray(); } break; } return(Ok(result)); }