示例#1
0
        public void SetUp()
        {
            _applicationApiClient   = new Mock <IRoatpApplicationApiClient>();
            _clarificationApiClient = new Mock <IRoatpClarificationApiClient>();
            _orchestrator           = new Web.Services.ClarificationOutcomeOrchestrator(_applicationApiClient.Object, _clarificationApiClient.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 <ClarificationPageReviewOutcome>();
            _contact  = new Contact {
                Email = "*****@*****.**"
            };
            _request = new GetClarificationOutcomeRequest(_applicationId, _userId);
            _applicationApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(_application);
            _applicationApiClient.Setup(x => x.GetContactForApplication(_applicationId)).ReturnsAsync(_contact);
            _clarificationApiClient.Setup(x => x.GetAllClarificationPageReviewOutcomes(_applicationId, _userId)).ReturnsAsync(_outcomes);

            _expectedOutcomeViewModel = new ClarificationOutcomeViewModel(_application, _outcomes);
        }
        public async Task <ClarificationOutcomeViewModel> GetClarificationOutcomeViewModel(GetClarificationOutcomeRequest request)
        {
            var application = await _applicationApiClient.GetApplication(request.ApplicationId);

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

            var outcomes = await _clarificationApiClient.GetAllClarificationPageReviewOutcomes(request.ApplicationId, request.UserId);

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

            var unsetOutcomesCount = outcomes.Count(x =>
                                                    x.Status != ClarificationPageReviewStatus.Pass && x.Status != ClarificationPageReviewStatus.Fail);

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

            return(new ClarificationOutcomeViewModel(application, outcomes));
        }