コード例 #1
0
        public void PageContentContainCovidPlaceholderNotViaGuidedSelectionOrCovidPathwayEmptyList()
        {
            var model = new QuestionViewModel {
                Content = CovidContent, ViaGuidedSelection = false, PathwayNo = "PW123"
            };
            var s = PageCustomContent.ReplaceCovidPlaceHolderInPageContent(model, new List <string>());

            Assert.AreEqual(CovidContent.Replace(PageCustomContent.CovidPlaceHolder.PlaceHolder, string.Empty), s);
        }
コード例 #2
0
        public void PageContentDoesNotContainCovidPlaceholder()
        {
            var model = new QuestionViewModel {
                Content = NonCovidContent
            };
            var s = PageCustomContent.ReplaceCovidPlaceHolderInPageContent(model, new List <string>());

            Assert.AreEqual(NonCovidContent, s);
        }
コード例 #3
0
        public void PageContentContainCovidPlaceholderViaGuidedSelection()
        {
            var model = new QuestionViewModel {
                Content = CovidContent, ViaGuidedSelection = true
            };
            var s = PageCustomContent.ReplaceCovidPlaceHolderInPageContent(model, new List <string>());

            Assert.AreEqual(CovidContent.Replace(PageCustomContent.CovidPlaceHolder.PlaceHolder, string.Empty), s);
        }
コード例 #4
0
        public void PageContentContainCovidPlaceholderNotViaGuidedSelectionCovidPathway()
        {
            var model = new QuestionViewModel {
                Content = CovidContent, ViaGuidedSelection = false, PathwayNo = "PW456"
            };
            var s = PageCustomContent.ReplaceCovidPlaceHolderInPageContent(model, new List <string>()
            {
                "PW456", "PW789"
            });

            Assert.AreEqual(CovidContent.Replace(PageCustomContent.CovidPlaceHolder.PlaceHolder, PageCustomContent.CovidPlaceHolder.Content), s);
        }
コード例 #5
0
        public async Task <Tuple <string, QuestionViewModel> > JustToBeSafeFirstBuilder(JustToBeSafeViewModel model)
        {
            if (model.PathwayId != null)
            {
                model = await DoWorkPreviouslyDoneInQuestionBuilder(model); //todo refactor away
            }
            var identifiedModel = await BuildIdentifiedModel(model);

            var questionsWithAnswers = await _restClient.ExecuteAsync <IEnumerable <QuestionWithAnswers> >(new JsonRestRequest(_configuration.GetBusinessApiJustToBeSafePartOneUrl(identifiedModel.PathwayId), Method.GET));

            CheckResponse(questionsWithAnswers);

            if (!questionsWithAnswers.Data.Any())
            {
                var questionViewModel = new QuestionViewModel
                {
                    PathwayId          = identifiedModel.PathwayId,
                    PathwayNo          = identifiedModel.PathwayNo,
                    PathwayTitle       = identifiedModel.PathwayTitle,
                    PathwayTraumaType  = identifiedModel.PathwayTraumaType,
                    DigitalTitle       = string.IsNullOrEmpty(identifiedModel.DigitalTitle) ? identifiedModel.PathwayTitle : identifiedModel.DigitalTitle,
                    UserInfo           = identifiedModel.UserInfo,
                    JourneyJson        = identifiedModel.JourneyJson,
                    State              = JsonConvert.DeserializeObject <Dictionary <string, string> >(identifiedModel.StateJson),
                    StateJson          = identifiedModel.StateJson,
                    CollectedKeywords  = identifiedModel.CollectedKeywords,
                    Journey            = JsonConvert.DeserializeObject <Journey>(identifiedModel.JourneyJson),
                    SessionId          = model.SessionId,
                    JourneyId          = Guid.NewGuid(),
                    FilterServices     = model.FilterServices,
                    Campaign           = model.Campaign,
                    Source             = model.Source,
                    CurrentPostcode    = model.CurrentPostcode,
                    EntrySearchTerm    = model.EntrySearchTerm,
                    ViaGuidedSelection = model.ViaGuidedSelection,
                    StartParameter     = model.StartParameter
                };

                var question = await _restClient.ExecuteAsync <QuestionWithAnswers>(new JsonRestRequest(_configuration.GetBusinessApiFirstQuestionUrl(identifiedModel.PathwayId, identifiedModel.StateJson), Method.GET));

                CheckResponse(question);

                _mappingEngine.Mapper.Map(question.Data, questionViewModel);

                if (questionViewModel.IsViaGuidedSelection)
                {
                    _auditLogger.LogEvent(model, EventType.GuidedSelection, questionViewModel.PathwayTitle, "/GuidedSelection");
                }


                _userZoomDataBuilder.SetFieldsForQuestion(questionViewModel);
                if (questionViewModel.NodeType == NodeType.Page)
                {
                    // This replicates logic in ViewDeterminer so in future should ideally use that instead.
                    string viewName = "../Question/Page";
                    if (questionViewModel.PathwayNo.Equals("PC111"))
                    {
                        viewName = "../Question/Custom/NHSUKPage";
                    }
                    //replace placeholder for covid specific logic.
                    var covidPathways = await GetCovidPathways(model.UserInfo.Demography.Gender, new AgeCategory(model.UserInfo.Demography.Age));

                    questionViewModel.Content = PageCustomContent.ReplaceCovidPlaceHolderInPageContent(questionViewModel, covidPathways);
                    return(new Tuple <string, QuestionViewModel>(viewName, questionViewModel));
                }

                return(new Tuple <string, QuestionViewModel>("../Question/Question", questionViewModel));
            }
            identifiedModel.Part           = 1;
            identifiedModel.JourneyId      = Guid.NewGuid();
            identifiedModel.Questions      = questionsWithAnswers.Data.ToList();
            identifiedModel.QuestionsJson  = JsonConvert.SerializeObject(questionsWithAnswers.Data);
            identifiedModel.JourneyJson    = string.IsNullOrEmpty(identifiedModel.JourneyJson) ? JsonConvert.SerializeObject(new Journey()) : identifiedModel.JourneyJson;
            identifiedModel.FilterServices = model.FilterServices;
            return(new Tuple <string, QuestionViewModel>("../JustToBeSafe/JustToBeSafe", identifiedModel));
        }