public async Task <OrganisationRiskViewModel> GetOrganisationRiskViewModel(GetOrganisationRiskRequest request)
        {
            _logger.LogInformation($"Retrieving Organisation high risk check details for application {request.ApplicationId}");

            var model = new OrganisationRiskViewModel();
            await model.PopulatePageCommonDetails(_applyApiClient, request.ApplicationId, GatewaySequences.OrganisationChecks,
                                                  GatewayPageIds.OrganisationRisk,
                                                  request.UserId,
                                                  request.UserName,
                                                  RoatpGatewayConstants.Captions.OrganisationChecks,
                                                  RoatpGatewayConstants.Headings.OrganisationRisk,
                                                  NoSelectionErrorMessages.Errors[GatewayPageIds.OrganisationRisk]);

            model.OrganisationType = await _organisationSummaryApiClient.GetTypeOfOrganisation(request.ApplicationId);

            model.TradingName = await _applyApiClient.GetTradingName(request.ApplicationId);

            _logger.LogInformation($"Retrieving company number in organisation high risk for application {request.ApplicationId}");
            model.CompanyNumber = await _organisationSummaryApiClient.GetCompanyNumber(request.ApplicationId);

            _logger.LogInformation($"Retrieving charity number in organisation high risk for application {request.ApplicationId}");
            model.CharityNumber = await _organisationSummaryApiClient.GetCharityNumber(request.ApplicationId);

            return(model);
        }
        public async Task post_organisation_risk_clarification_happy_path()
        {
            var applicationId = Guid.NewGuid();
            var pageId        = GatewayPageIds.OrganisationRisk;

            var vm = new OrganisationRiskViewModel
            {
                ApplicationId       = applicationId,
                PageId              = pageId,
                Status              = SectionReviewStatus.Pass,
                SourcesCheckedOn    = DateTime.Now,
                ErrorMessages       = new List <ValidationErrorDetail>(),
                OptionPassText      = "Some pass text",
                ClarificationAnswer = ClarificationAnswer
            };
            var command = new SubmitGatewayPageAnswerCommand(vm);

            _gatewayValidator.Setup(v => v.ValidateClarification(command)).ReturnsAsync(new ValidationResponse {
                Errors = new List <ValidationErrorDetail>()
            });

            await _controller.ClarifyOrganisationRiskPage(command);

            _applyApiClient.Verify(x => x.SubmitGatewayPageAnswerPostClarification(applicationId, pageId, vm.Status, userId, username, vm.OptionPassText, ClarificationAnswer));
        }
        public void check_organisation_risk_request_is_sent()
        {
            var applicationId = Guid.NewGuid();

            var vm = new OrganisationRiskViewModel
            {
                Status           = SectionReviewStatus.Pass,
                SourcesCheckedOn = DateTime.Now,
                ErrorMessages    = new List <ValidationErrorDetail>()
            };

            _orchestrator.Setup(x => x.GetOrganisationRiskViewModel(It.IsAny <GetOrganisationRiskRequest>()))
            .ReturnsAsync(vm);

            var result     = _controller.GetOrganisationRiskPage(applicationId).Result;
            var viewResult = result as ViewResult;

            Assert.AreEqual(viewname, viewResult.ViewName);
        }
        public void post_organisation_risk_clarification_path_with_errors()
        {
            var applicationId = Guid.NewGuid();
            var pageId        = GatewayPageIds.OrganisationRisk;

            var vm = new OrganisationRiskViewModel
            {
                ApplicationId       = applicationId,
                PageId              = pageId,
                Status              = SectionReviewStatus.Fail,
                SourcesCheckedOn    = DateTime.Now,
                ErrorMessages       = new List <ValidationErrorDetail>(),
                ClarificationAnswer = ClarificationAnswer
            };

            var command = new SubmitGatewayPageAnswerCommand(vm);

            _gatewayValidator.Setup(v => v.ValidateClarification(command))
            .ReturnsAsync(new ValidationResponse
            {
                Errors = new List <ValidationErrorDetail>
                {
                    new ValidationErrorDetail {
                        Field = "OptionFail", ErrorMessage = "needs text"
                    }
                }
            }
                          );


            _orchestrator.Setup(x => x.GetOrganisationRiskViewModel(It.Is <GetOrganisationRiskRequest>(y => y.ApplicationId == vm.ApplicationId &&
                                                                                                       y.UserName == username))).ReturnsAsync(vm);

            _applyApiClient.Setup(x =>
                                  x.SubmitGatewayPageAnswer(applicationId, pageId, vm.Status, userId, username, comment));

            var result = _controller.ClarifyOrganisationRiskPage(command).Result;

            _applyApiClient.Verify(x => x.SubmitGatewayPageAnswer(applicationId, pageId, vm.Status, userId, username, comment), Times.Never);
        }