public async Task <IActionResult> Post(IList <IFormFile> files) { if (files == null || !EnumerableExtensions.Any(files)) { return(BadRequest()); } StringValues authorisationHeader = Request.Headers["Authorization"]; string email = GetEmailFromAuthorizationHeader(authorisationHeader); var request = await CreateSaveAssetRegisterFileRequest(files); await _backgroundProcessor.QueueBackgroundTask( async() => { await _importAssetsUseCase.ExecuteAsync(request, _backgroundProcessor.GetCancellationToken()).ConfigureAwait(false); await _assetRegisterUploadProcessedNotifier.SendUploadProcessedNotification( new UploadProcessedNotification { Email = email, UploadSuccessfullyProcessed = true }, _backgroundProcessor.GetCancellationToken()); } ); return(Ok()); }
public async Task <IList <AssetOutputModel> > ProcessAsync(string[] args) { ValidateConsoleInput(args); var parsedInput = _inputParser.Parse(args); var cancellationTokenSource = new CancellationTokenSource(); var text = await _fileReader.ReadAsync(parsedInput.FilePath, cancellationTokenSource.Token).ConfigureAwait(false); var csvLines = _textSplitter.SplitIntoLines(text); var importAssetsRequest = new ImportAssetsRequest { Delimiter = parsedInput.Delimiter, AssetLines = csvLines }; var response = await _importAssetsUseCase.ExecuteAsync(importAssetsRequest, cancellationTokenSource.Token).ConfigureAwait(false); return(response?.AssetsImported); }