public async Task <ActionResult <GetAppealResponse> > GetAppeal([FromRoute] GetAppealRequest request)
        {
            var query = new GetAppealQuery
            {
                ApplicationId     = request.ApplicationId,
                OversightReviewId = request.OversightReviewId
            };

            var result = await _mediator.Send(query);

            return(result == null ? null : new GetAppealResponse
            {
                Id = result.Id,
                Message = result.Message,
                CreatedOn = result.CreatedOn,
                UserId = result.UserId,
                UserName = result.UserName,
                Uploads = result.Uploads.Select(upload => new GetAppealResponse.AppealUpload
                {
                    Id = upload.Id,
                    Filename = upload.Filename,
                    ContentType = upload.ContentType
                }).ToList()
            });
        }
        public async Task GetAppeal_Gets_Appeal_For_Application_And_OversightReview()
        {
            var request     = new GetAppealRequest();
            var queryResult = AutoFixture.Create <GetAppealQueryResult>();

            _mediator.Setup(x => x.Send(It.IsAny <GetAppealQuery>(), It.IsAny <CancellationToken>())).ReturnsAsync(queryResult);

            var result = await _controller.GetAppeal(request);

            result.Should().BeOfType <ActionResult <GetAppealResponse> >();

            var compareLogic = new CompareLogic(new ComparisonConfig {
                IgnoreObjectTypes = true
            });
            var comparisonResult = compareLogic.Compare(queryResult, result);

            Assert.IsTrue(comparisonResult.AreEqual);
        }
        public async Task <ActionResult <GetAppealResponse> > GetAppeal([FromRoute] GetAppealRequest request)
        {
            var query = new GetAppealQuery
            {
                ApplicationId = request.ApplicationId,
            };

            var result = await _mediator.Send(query);

            return(result == null ? null : new GetAppealResponse
            {
                Id = result.Id,
                ApplicationId = result.ApplicationId,
                Status = result.Status,
                HowFailedOnPolicyOrProcesses = result.HowFailedOnPolicyOrProcesses,
                HowFailedOnEvidenceSubmitted = result.HowFailedOnEvidenceSubmitted,
                AppealSubmittedDate = result.AppealSubmittedDate,
                AppealDeterminedDate = result.AppealDeterminedDate,
                InternalComments = result.InternalComments,
                ExternalComments = result.ExternalComments,
                UserId = result.UserId,
                UserName = result.UserName,
                InProgressDate = result.InProgressDate,
                InProgressUserId = result.InProgressUserId,
                InProgressUserName = result.InProgressUserName,
                InProgressInternalComments = result.InProgressInternalComments,
                InProgressExternalComments = result.InProgressExternalComments,
                CreatedOn = result.CreatedOn,
                UpdatedOn = result.UpdatedOn,
                AppealFiles = result.AppealFiles.Select(file => new AppealFile
                {
                    Id = file.Id,
                    FileName = file.FileName,
                    ContentType = file.ContentType
                }).ToList()
            });
        }