Exemple #1
0
        private void LogAudit(JourneyViewModel model, string pageName)
        {
            var auditEntry = model.ToAuditEntry();

            auditEntry.Page = pageName;
            _auditLogger.Log(auditEntry);
        }
        public void Collect_QuestionWithAnswers_with_symptonDiscriminator_returns_symptomDiscriminator_Test()
        {
            var testViewModel       = new JourneyViewModel();
            var questionWithAnswers = new QuestionWithAnswers()
            {
                Answered = new Answer()
                {
                    Order = 0, Title = "Yes", SymptomDiscriminator = TEST_SD_CODE
                },
                Answers = new List <Answer>()
                {
                    new Answer()
                    {
                        Order = 0, Title = "Yes"
                    }, new Answer()
                    {
                        Order = 1, Title = "No"
                    }
                },
                Question = new Question()
                {
                    Order = "0", Title = "Test Question"
                }
            };

            _symptomDiscriminatorCollector.Collect(questionWithAnswers, testViewModel);
            Assert.AreEqual(TEST_SD_CODE, testViewModel.SymptomDiscriminatorCode);
        }
Exemple #3
0
        public async Task LogEventData(JourneyViewModel model, string eventData)
        {
            var audit = model.ToAuditEntry();

            audit.EventData = eventData;
            await Log(audit);
        }
Exemple #4
0
        public SendSmsOutcomeViewModel SendSmsDetailsBuilder(JourneyViewModel model)
        {
            //TODO: how to data drive this better?
            var smsSendModel = _mappingEngine.Mapper.Map <SendSmsOutcomeViewModel>(model);

            smsSendModel.MobileNumber = model.Journey.GetStepInputValue <string>(QuestionType.Telephone, "TX1111");

            // If it exists in the state, the age comes from the 111 original journey
            var age = -1;

            if (model.State.ContainsKey("PATIENT_AGE"))
            {
                age = int.Parse(model.State["PATIENT_AGE"]);
            }
            smsSendModel.Age = age >= 0 ? age : model.Journey.GetStepInputValue <int>(QuestionType.Integer, "TX1112");

            // If it exists in the state, the symptoms started days ago comes from the 111 original journey unless >10
            var days = -1;

            if (model.State.ContainsKey("SYMPTOMS_STARTED_DAYS_AGO"))
            {
                days = int.Parse(model.State["SYMPTOMS_STARTED_DAYS_AGO"]);
            }

            days = days > 10 ? model.Journey.GetStepInputValue <int>(QuestionType.Date, "TX1113"): days;
            smsSendModel.SymptomsStartedDaysAgo = days >= 0 ? days : model.Journey.GetStepInputValue <int>(QuestionType.Date, "TX1113");


            smsSendModel.LivesAlone = model.Journey.GetStepInputValue <bool>(QuestionType.Choice, "TX1114");
            return(smsSendModel);
        }
        public void Collect_duplicate_keyword_Test()
        {
            var testJourneyModel = new JourneyViewModel()
            {
                CollectedKeywords = new KeywordBag(new List <Keyword>()
                {
                    new Keyword()
                    {
                        Value = "Test keyword"
                    }
                }, new List <Keyword>()
                {
                    new Keyword()
                    {
                        Value = "Test Excluded keyword"
                    }
                })
            };
            var keywordsString        = "Test keyword|AnotherTest keyword";
            var excludeKeywordsString = "Test Excluded keyword|AnotherTest exclude keyword";
            var testAnswer            = new Answer()
            {
                Keywords = keywordsString, Title = "test", ExcludeKeywords = excludeKeywordsString
            };

            var result = _testKeywordCollector.Collect(testAnswer, testJourneyModel);

            Assert.IsNotNull(result);
            Assert.True(result.CollectedKeywords.Keywords.Count() == 2);
            Assert.AreEqual("Test keyword", result.CollectedKeywords.Keywords[0].Value);
            Assert.AreEqual("AnotherTest keyword", result.CollectedKeywords.Keywords[1].Value);

            Assert.AreEqual("Test Excluded keyword", result.CollectedKeywords.ExcludeKeywords[0].Value);
            Assert.AreEqual("AnotherTest exclude keyword", result.CollectedKeywords.ExcludeKeywords[1].Value);
        }
        public async Task <ActionResult> Question(JourneyViewModel model)
        {
            ModelState.Clear();
            var next = await _questionViewModelBuilder.BuildQuestion(model);

            return(View(next.Item1, next.Item2));
        }
Exemple #7
0
        public void Save(JourneyViewModel viewModel)
        {
            Journey journey;

            viewModel.IsNotified = false;

            if (viewModel.Id > 0)
            {
                journey = _databaseContext.Journeys
                          .Include(j => j.User)
                          .Include(j => j.Countries)
                          .Include(j => j.Invoices)
                          .Include(j => j.JourneyVehicles)
                          .Single(j => j.Id == viewModel.Id);
            }
            else
            {
                journey = new Journey();
            }

            _mapper.Map(viewModel, journey);
            UpdateUser(viewModel, journey);
            UpdateVehicles(viewModel, journey);

            if (journey.Id <= 0)
            {
                _databaseContext.Journeys.Add(journey);
                _notificationManager.Add(NotificationType.Information, "Trasa została dodana.");
            }
            else
            {
                _notificationManager.Add(NotificationType.Information, "Trasa została zmodyfikowana.");
            }
        }
        public JourneyViewModel BuildGender(JourneyViewModel model)
        {
            //if (HttpContext.Current.Session != null)
            //    SessionWrapper.NHSUserGuid = Guid.NewGuid().ToString();

            return(model);
        }
        public async Task <ActionResult> Slider(JourneyViewModel model)
        {
            ModelState.Clear();
            var sliderModel = await _questionViewModelBuilder.BuildSlider(model);

            return(View("Slider", sliderModel));
        }
 private void AddDiscriminatorToModel(string symptomDisciminator, JourneyViewModel model)
 {
     if (!String.IsNullOrEmpty(symptomDisciminator))
     {
         model.SymptomDiscriminatorCode = symptomDisciminator;
     }
 }
Exemple #11
0
        /// <summary>
        /// Convert from a <see cref="IJourneyDetailsType"/> to a <see cref="IJourneyViewModel"/>.
        /// </summary>
        /// <param name="input"><see cref="IJourneyDetailsType"/> to convert</param>
        /// <param name="firstExamples">first examples manager</param>
        /// <param name="parentNumber">parent unit id</param>
        /// <returns>converted <see cref="IJourneyViewModel"/></returns>
        public static IJourneyViewModel ToJourneyViewModel(
            IJourneyDetailsType input,
            FirstExampleManager firstExamples,
            string parentNumber = "")
        {
            string unitOne   = input.Units.Count > 0 ? input.Units[0] : string.Empty;
            string unitTwo   = input.Units.Count > 1 ? input.Units[1] : string.Empty;
            string unitThree = input.Units.Count > 2 ? input.Units[2] : string.Empty;
            string unitFour  = input.Units.Count > 3 ? input.Units[3] : string.Empty;

            JourneyViewModel viewModel =
                new JourneyViewModel(
                    firstExamples,
                    parentNumber,
                    input.JnyId.JnyNumber,
                    input.From,
                    input.To,
                    input.Via,
                    input.JnyId.Date,
                    input.Distance,
                    unitOne,
                    unitTwo,
                    unitThree,
                    unitFour);

            viewModel.CalculateStates();

            return(viewModel);
        }
        public async Task <Tuple <string, JourneyViewModel> > JustToBeSafeFirstBuilder(JustToBeSafeViewModel model)
        {
            var questionsJson = await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiJustToBeSafePartOneUrl, model.PathwayId));

            var questionsWithAnswers = JsonConvert.DeserializeObject <List <QuestionWithAnswers> >(questionsJson);

            if (!questionsWithAnswers.Any())
            {
                var journeyViewModel = new JourneyViewModel
                {
                    PathwayId    = model.PathwayId,
                    PathwayNo    = model.PathwayNo,
                    PathwayTitle = model.PathwayTitle,
                    UserInfo     = model.UserInfo,
                    JourneyJson  = model.JourneyJson,
                    State        = JsonConvert.DeserializeObject <Dictionary <string, string> >(model.StateJson)
                };
                var question = JsonConvert.DeserializeObject <QuestionWithAnswers>(await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiFirstQuestionUrl, model.PathwayId, model.StateJson)));
                _mappingEngine.Map(question, journeyViewModel);
                return(new Tuple <string, JourneyViewModel>("../Question/Question", journeyViewModel));
            }
            model.Part          = 1;
            model.Questions     = questionsWithAnswers;
            model.QuestionsJson = questionsJson;
            model.JourneyJson   = string.IsNullOrEmpty(model.JourneyJson) ? JsonConvert.SerializeObject(new Journey()) : model.JourneyJson;
            return(new Tuple <string, JourneyViewModel>("../JustToBeSafe/JustToBeSafe", model));
        }
Exemple #13
0
        private async Task <ActionResult> RedirectToFirstTriageQuestion(JourneyViewModel model)
        {
            var pathwayMetadata = await _restClientBusinessApi.ExecuteAsync <PathwayMetaData>(
                new RestRequest(_configuration.GetBusinessApiPathwayMetadataUrl(model.PathwayNo),
                                Method.GET)).ConfigureAwait(false);

            var digitalTitle = pathwayMetadata.Data.DigitalTitle;

            var searchJourneyViewModel = new SearchJourneyViewModel()
            {
                SessionId          = model.SessionId,
                PathwayNo          = model.PathwayNo.ToUpper(),
                DigitalTitle       = digitalTitle,
                CurrentPostcode    = model.CurrentPostcode,
                UserInfo           = model.UserInfo,
                FilterServices     = model.FilterServices,
                Campaign           = model.Campaign,
                Source             = model.Source,
                ViaGuidedSelection = model.ViaGuidedSelection,
                StartParameter     = model.StartParameter
            };

            return(RedirectToAction("FirstQuestion", "JustToBeSafe", new RouteValueDictionary {
                { "pathwayNumber", searchJourneyViewModel.PathwayNo },
                { "gender", searchJourneyViewModel.UserInfo.Demography.Gender },
                { "age", searchJourneyViewModel.UserInfo.Demography.Age },
                { "args", KeyValueEncryptor.EncryptedKeys(searchJourneyViewModel) }
            }));
        }
        public JourneyViewModel UpdateJourney(JourneyViewModel model)
        {
            Data.Entity.Journey entityToUpdate = GetAndMap(model);
            Update(entityToUpdate);
            SaveChanges();

            return(Mapper.Map <JourneyViewModel>(entityToUpdate));
        }
Exemple #15
0
        public JourneyPage(JourneyViewModel j)
        {
            InitializeComponent();

            BindingContext = j;

            InitRoute();
        }
Exemple #16
0
        public SendSmsOutcomeViewModel SendSmsVerifyDetailsBuilder(JourneyViewModel model, string SelectedAnswer)
        {
            var smsSendModel = _mappingEngine.Mapper.Map <SendSmsOutcomeViewModel>(model);

            smsSendModel.Journey        = model.Journey;
            smsSendModel.MobileNumber   = model.Journey.GetStepInputValue <string>(QuestionType.Telephone, "TX1111");
            smsSendModel.SelectedAnswer = SelectedAnswer;
            return(smsSendModel);
        }
        public void Collect(QuestionWithAnswers quesionWithAnswers, JourneyViewModel exitingJourneyModel)
        {
            if (quesionWithAnswers.Answered == null)
            {
                return;
            }

            Collect(quesionWithAnswers.Answered, exitingJourneyModel);
        }
Exemple #18
0
        public async Task <ActionResult> Question(JourneyViewModel model)
        {
            ModelState.Clear();
            var nextModel = await GetNextJourneyViewModel(model);

            var viewName = _viewRouter.GetViewName(nextModel, ControllerContext);

            return(View(viewName, nextModel));
        }
        public JourneyViewModel BuildPreviousQuestion(QuestionWithAnswers lastStep, JourneyViewModel model)
        {
            model.RemoveLastStep();

            model.CollectedKeywords = _keywordCollector.CollectKeywordsFromPreviousQuestion(model.CollectedKeywords,
                                                                                            model.Journey.Steps);

            return(_mappingEngine.Mapper.Map(lastStep, model));
        }
        public JourneyViewModel AddJourney(JourneyViewModel model)
        {
            model.TravelerObjectIdentifier = _userService.GetUserIdentifier();
            var entity = Mapper.Map <Data.Entity.Journey>(model);

            Insert(entity);
            SaveChanges();

            return(Mapper.Map <JourneyViewModel>(entity));
        }
        public async Task <Tuple <string, JourneyViewModel> > BuildNextAction(List <QuestionWithAnswers> questions, Journey journey, JustToBeSafeViewModel model, Answer selectedAnswer, QuestionWithAnswers selectedQuestion, string questionsJson)
        {
            if (!questions.Any())
            {
                journey.Steps = journey.Steps.Where(step => step.QuestionId != model.SelectedQuestionId).ToList();
                var questionViewModel = new QuestionViewModel
                {
                    PathwayId                = model.PathwayId,
                    PathwayNo                = model.PathwayNo,
                    PathwayTitle             = model.PathwayTitle,
                    SymptomDiscriminatorCode = model.SymptomDiscriminatorCode,
                    UserInfo       = model.UserInfo,
                    JourneyJson    = JsonConvert.SerializeObject(journey),
                    SelectedAnswer = JsonConvert.SerializeObject(selectedAnswer),
                };

                _mappingEngine.Mapper.Map(selectedQuestion, questionViewModel);
                questionViewModel = _mappingEngine.Mapper.Map(selectedAnswer, questionViewModel);
                var nextNode = await GetNextNode(questionViewModel);

                return(new Tuple <string, JourneyViewModel>("TODO NOT USED?", await _journeyViewModelBuilder.Build(questionViewModel, nextNode)));
            }

            if (questions.Count() == 1)
            {
                var journeyViewModel = new JourneyViewModel
                {
                    PathwayId    = model.PathwayId,
                    PathwayNo    = model.PathwayNo,
                    PathwayTitle = model.PathwayTitle,
                    UserInfo     = model.UserInfo,
                    JourneyJson  = JsonConvert.SerializeObject(journey),
                };

                _mappingEngine.Mapper.Map(questions.First(), journeyViewModel);
                journeyViewModel = _mappingEngine.Mapper.Map(selectedAnswer, journeyViewModel);

                return(new Tuple <string, JourneyViewModel>("../Question/Question", journeyViewModel));
            }

            var viewModel = new JustToBeSafeViewModel
            {
                PathwayId                = model.PathwayId,
                PathwayNo                = model.PathwayNo,
                PathwayTitle             = model.PathwayTitle,
                JourneyJson              = JsonConvert.SerializeObject(journey),
                SymptomDiscriminatorCode = selectedAnswer.SymptomDiscriminator ?? model.SymptomDiscriminatorCode,
                Part          = model.Part + 1,
                Questions     = questions,
                QuestionsJson = questionsJson,
                UserInfo      = model.UserInfo
            };

            return(new Tuple <string, JourneyViewModel>("JustToBeSafe", viewModel));
        }
        public void Collect_Answer_with_symptonDiscriminator_returns_symptomDiscriminator_Test()
        {
            var testViewModel = new JourneyViewModel();
            var answer        = new Answer()
            {
                Order = 0, Title = "Yes", SymptomDiscriminator = TEST_SD_CODE
            };

            _symptomDiscriminatorCollector.Collect(answer, testViewModel);
            Assert.AreEqual(TEST_SD_CODE, testViewModel.SymptomDiscriminatorCode);
        }
        public void Collect_Answer_with_no_symptonDiscriminator_returns_empty_symptomDiscriminator_Test()
        {
            var testViewModel = new JourneyViewModel();
            var answer        = new Answer()
            {
                Order = 0, Title = "Yes"
            };

            _symptomDiscriminatorCollector.Collect(answer, testViewModel);
            Assert.AreEqual(String.Empty, testViewModel.SymptomDiscriminatorCode);
        }