public void SetUp()
        {
            _applicationApiClient = new Mock <IRoatpApplicationApiClient>();
            _moderationApiClient  = new Mock <IRoatpModerationApiClient>();
            _orchestrator         = new Web.Services.ModeratorOutcomeOrchestrator(_applicationApiClient.Object, _moderationApiClient.Object);
            _application          = new Apply
            {
                ApplicationId         = _applicationId,
                ModerationStatus      = ModerationStatus.New,
                Assessor1ReviewStatus = AssessorReviewStatus.Approved,
                Assessor1UserId       = _userId,
                Assessor1Name         = _userDisplayName,
                Assessor2ReviewStatus = AssessorReviewStatus.Approved,
                Assessor2UserId       = $"{ _userId }-2",
                Assessor2Name         = $"{ _userDisplayName }-2",
                ApplyData             = new ApplyData
                {
                    ApplyDetails = new ApplyDetails
                    {
                        ProviderRouteName      = ApplicationRouteName,
                        UKPRN                  = Ukprn,
                        OrganisationName       = OrganisationName,
                        ApplicationSubmittedOn = ApplicationSubmittedOn
                    }
                }
            };

            _outcomes = new List <ModeratorPageReviewOutcome>();
            _contact  = new Contact {
                Email = Email
            };
            _request = new ReviewModeratorOutcomeRequest(_applicationId, _userId, Status, ReviewComment);
            _applicationApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(_application);
            _applicationApiClient.Setup(x => x.GetContactForApplication(_applicationId)).ReturnsAsync(_contact);

            _expectedViewModel = new ModeratorOutcomeReviewViewModel
            {
                ApplicationId         = _applicationId,
                Status                = Status,
                ApplicantEmailAddress = Email,
                Ukprn            = Ukprn,
                ReviewComment    = ReviewComment,
                ApplyLegalName   = OrganisationName,
                ApplicationRoute = ApplicationRouteName,
                SubmittedDate    = ApplicationSubmittedOn
            };
        }
Example #2
0
        public async Task <ModeratorOutcomeReviewViewModel> GetInModerationOutcomeReviewViewModel(ReviewModeratorOutcomeRequest request)
        {
            var viewModel = new ModeratorOutcomeReviewViewModel
            {
                Status = request.Status, ReviewComment = request.ReviewComment, ApplicationId = request.ApplicationId
            };

            var application = await _applicationApiClient.GetApplication(request.ApplicationId);

            var contact = await _applicationApiClient.GetContactForApplication(request.ApplicationId);

            if (application is null || contact is null)
            {
                return(null);
            }

            viewModel.ApplicantEmailAddress = contact.Email;

            if (application.ApplyData?.ApplyDetails != null)
            {
                viewModel.ApplicationRoute = application.ApplyData.ApplyDetails.ProviderRouteName;
                viewModel.Ukprn            = application.ApplyData.ApplyDetails.UKPRN;
                viewModel.ApplyLegalName   = application.ApplyData.ApplyDetails.OrganisationName;
                viewModel.SubmittedDate    = application.ApplyData.ApplyDetails.ApplicationSubmittedOn;
            }

            return(viewModel);
        }