public async Task <IActionResult> GetAppealFile([FromRoute] GetAppealFileRequest request)
        {
            var query = new GetAppealFileQuery
            {
                ApplicationId = request.ApplicationId,
                FileName      = request.FileName
            };

            var appealFile = await _mediator.Send(query);

            if (appealFile is null)
            {
                _logger.LogError($"Unable to find appeal file for application: {request.ApplicationId} || fileName {request.FileName}");
                return(NotFound());
            }

            var file = await _fileStorageService.DownloadApplicationFile(appealFile.ApplicationId, appealFile.FileName, ContainerType.Appeals, new CancellationToken());

            if (file is null)
            {
                _logger.LogError($"Unable to download appeal file for application: {request.ApplicationId} || fileName {request.FileName}");
                return(NotFound());
            }

            return(File(file.Stream, file.ContentType, file.FileName));
        }
        public async Task Handle_Returns_Null_If_Upload_Does_Not_Belong_To_Application()
        {
            var request = new GetAppealFileQuery
            {
                ApplicationId = Guid.NewGuid(),
                FileName      = _fileName
            };

            var result = await _handler.Handle(request, CancellationToken.None);

            Assert.IsNull(result);
        }
        public async Task Handle_Returns_Requested_Upload()
        {
            var request = new GetAppealFileQuery
            {
                ApplicationId = _applicationId,
                FileName      = _fileName
            };

            var result = await _handler.Handle(request, CancellationToken.None);

            Assert.AreEqual(_appealFileId, result.Id);
            Assert.AreEqual(_applicationId, result.ApplicationId);
            Assert.AreEqual(_fileName, result.FileName);
            Assert.AreEqual(_contentType, result.ContentType);
        }