コード例 #1
0
        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      = "Main",
                        UKPRN                  = "23456789",
                        OrganisationName       = "Emporium Glorium",
                        ApplicationSubmittedOn = DateTime.UtcNow
                    }
                }
            };

            _outcomes = new List <ModeratorPageReviewOutcome>();
            _contact  = new Contact {
                Email = "*****@*****.**"
            };
            _request = new GetModeratorOutcomeRequest(_applicationId, _userId);
            _applicationApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(_application);
            _applicationApiClient.Setup(x => x.GetContactForApplication(_applicationId)).ReturnsAsync(_contact);
            _moderationApiClient.Setup(x => x.GetAllModeratorPageReviewOutcomes(_applicationId, _userId)).ReturnsAsync(_outcomes);

            _expectedOutcomeViewModel = new ModeratorOutcomeViewModel(_application, _outcomes);
        }
コード例 #2
0
        public async Task <ModeratorOutcomeViewModel> GetInModerationOutcomeViewModel(GetModeratorOutcomeRequest request)
        {
            var application = await _applicationApiClient.GetApplication(request.ApplicationId);

            var contact = await _applicationApiClient.GetContactForApplication(request.ApplicationId); // TODO: Is this needed?

            var savedOutcomes = await _moderationApiClient.GetAllModeratorPageReviewOutcomes(request.ApplicationId, request.UserId);

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

            // Not sure if this check is required. You're going to have Clarification ones in here soon
            var unsetOutcomesCount = savedOutcomes.Count(x =>
                                                         x.Status != ModeratorPageReviewStatus.Pass && x.Status != ModeratorPageReviewStatus.Fail);

            if (unsetOutcomesCount > 0)
            {
                return(null);
            }

            return(new ModeratorOutcomeViewModel(application, savedOutcomes));
        }