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