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 GivenOneTask_WhenTaskIsQueued_ThenTaskIsExecuted(int count)
        {
            //arrange

            //act
            for (int i = 0; i < count; i++)
            {
                await _classUnderTest.QueueBackgroundTask(async() => await _mockImportAssetsUseCase.Object.ExecuteAsync(new ImportAssetsRequest(), CancellationToken.None));
            }

            await Task.Delay(500);

            //assert
            _mockImportAssetsUseCase.Verify(v => v.ExecuteAsync(It.IsAny <ImportAssetsRequest>(), It.IsAny <CancellationToken>()), Times.Exactly(count));
        }