private static QuestionInfoViewModel BuildModel(string pathwayNumber, string gender, int age, string args) { var decryptedArgs = new QueryStringEncryptor(args); var decryptedFilterServices = !decryptedArgs.ContainsKey("filterServices") || string.IsNullOrEmpty(decryptedArgs["filterServices"]) || bool.Parse(decryptedArgs["filterServices"]); var model = new QuestionInfoViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), PathwayNo = pathwayNumber, DigitalTitle = decryptedArgs["digitalTitle"], EntrySearchTerm = decryptedArgs["entrySearchTerm"], CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = new AgeGenderViewModel { Age = age, Gender = gender } }, FilterServices = decryptedFilterServices, Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"], ViaGuidedSelection = string.IsNullOrEmpty(decryptedArgs["viaGuidedSelection"]) ? (bool?)null : bool.Parse(decryptedArgs["viaGuidedSelection"]), StartParameter = decryptedArgs["startParameter"] }; return(model); }
public async Task <ActionResult> Category(string gender, int age, string category, string args, bool hasResults = false) { var decryptedArgs = new QueryStringEncryptor(args); var ageGenderViewModel = new AgeGenderViewModel { Gender = gender, Age = age }; var categoriesContainingStartingPathways = await GetAllCategories(ageGenderViewModel, decryptedArgs["postcode"]).ConfigureAwait(false); var model = new SearchJourneyViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = ageGenderViewModel, }, Categories = categoriesContainingStartingPathways.Where(c => c.Category.Title == category), FilterServices = bool.Parse(decryptedArgs["filterServices"]), SanitisedSearchTerm = decryptedArgs["searchTerm"], EntrySearchTerm = decryptedArgs["entrySearchTerm"], Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"], HasResults = hasResults, ViaGuidedSelection = GetBoolOrNullFrom(decryptedArgs["viaGuidedSelection"]), StartParameter = decryptedArgs["startParameter"] }; _userZoomDataBuilder.SetFieldsForSearchResults(model); return(View("Pathways", model)); }
public async Task <ActionResult> Categories(string gender, int age, string args, bool hasResults = false) { var decryptedArgs = new QueryStringEncryptor(args); var ageGenderViewModel = new AgeGenderViewModel { Gender = gender, Age = age }; var topicsContainingStartingPathways = await GetAllTopics(ageGenderViewModel); var model = new SearchJourneyViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = ageGenderViewModel, }, AllTopics = topicsContainingStartingPathways, FilterServices = bool.Parse(decryptedArgs["filterServices"]), SanitisedSearchTerm = decryptedArgs["searchTerm"], EntrySearchTerm = decryptedArgs["searchTerm"], Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"], HasResults = hasResults }; _userZoomDataBuilder.SetFieldsForSearchResults(model); return(View(model)); }
public async Task <ActionResult> SearchResultsDirect(string gender, int age, string searchTerm, string args) { var decryptedArgs = new QueryStringEncryptor(args); var ageGenderViewModel = new AgeGenderViewModel { Gender = gender, Age = age }; var model = new SearchJourneyViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = ageGenderViewModel, }, FilterServices = bool.Parse(decryptedArgs["filterServices"]), Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"], SanitisedSearchTerm = searchTerm, ViaGuidedSelection = GetBoolOrNullFrom(decryptedArgs["viaGuidedSelection"]), StartParameter = decryptedArgs["startParameter"] }; return(await SearchResults(model)); }
public ActionResult SearchDirect(string gender, int age, string args) { var decryptedArgs = new QueryStringEncryptor(args); var ageGenderViewModel = new AgeGenderViewModel { Gender = gender, Age = age }; var startOfJourney = new SearchJourneyViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = ageGenderViewModel, }, FilterServices = bool.Parse(decryptedArgs["filterServices"]), Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"], ViaGuidedSelection = GetBoolOrNullFrom(decryptedArgs["viaGuidedSelection"]), StartParameter = decryptedArgs["startParameter"] }; _userZoomDataBuilder.SetFieldsForSearch(startOfJourney); return(View("~\\Views\\Search\\Search.cshtml", startOfJourney)); }
public async Task <ActionResult> PathwayStart(string pathwayNumber, string gender, int age, string args) { var decryptedArgs = new QueryStringEncryptor(args); var decryptedFilterServices = string.IsNullOrEmpty(decryptedArgs["filterServices"]) || bool.Parse(decryptedArgs["filterServices"]); var model = new JustToBeSafeViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), PathwayNo = pathwayNumber, DigitalTitle = decryptedArgs["digitalTitle"], EntrySearchTerm = decryptedArgs["searchTerm"], CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = new AgeGenderViewModel { Age = age, Gender = gender } }, FilterServices = decryptedFilterServices, Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"] }; return(await JustToBeSafeFirst(model)); }
public ActionResult Home(JourneyViewModel model, string args) { if (!string.IsNullOrEmpty(args)) { var decryptedFields = new QueryStringEncryptor(args); model.CurrentPostcode = decryptedFields["postcode"]; model.SessionId = Guid.Parse(decryptedFields["sessionId"]); } _userZoomDataBuilder.SetFieldsForInitialQuestion(model); return(View("InitialQuestion", model)); }
public async Task <ViewResult> GuidedSelection(string gender, int age, string args) { var decryptedArgs = new QueryStringEncryptor(args); var ageGenderViewModel = new AgeGenderViewModel { Gender = gender, Age = age }; var model = new SearchJourneyViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = ageGenderViewModel, }, FilterServices = bool.Parse(decryptedArgs["filterServices"]), Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"], IsCovidJourney = bool.Parse(decryptedArgs["isCovidjourney"]), EntrySearchTerm = decryptedArgs["entrySearchTerm"], ViaGuidedSelection = true, StartParameter = decryptedArgs["startParameter"] }; var ageGroup = new AgeCategory(model.UserInfo.Demography.Age); var requestPath = _configuration.GetBusinessApiGuidedPathwaySearchUrl(model.UserInfo.Demography.Gender, ageGroup.Value, true); var request = new RestRequest(requestPath, Method.POST); request.AddJsonBody(new { query = SearchReservedCovidTerms.SearchTerms.First() }); var response = await _restClientBusinessApi.ExecuteAsync <List <GuidedSearchResultViewModel> >(request).ConfigureAwait(false); var guidedModel = Mapper.Map <GuidedSearchJourneyViewModel>(model); guidedModel.GuidedResults = response.Data; return(!guidedModel.GuidedResults.Any() ? View("~\\Views\\Search\\NoResults.cshtml", model) : View("~\\Views\\Search\\GuidedSelection.cshtml", guidedModel)); }
public ViewResult Explainer(string gender, int age, string args) { var decryptedArgs = new QueryStringEncryptor(args); var ageGenderViewModel = new AgeGenderViewModel { Gender = gender, Age = age }; var model = new SearchJourneyViewModel { SessionId = Guid.Parse(decryptedArgs["sessionId"]), CurrentPostcode = decryptedArgs["postcode"], UserInfo = new UserInfo { Demography = ageGenderViewModel, }, FilterServices = bool.Parse(decryptedArgs["filterServices"]), Campaign = decryptedArgs["campaign"], Source = decryptedArgs["source"], ViaGuidedSelection = GetBoolOrNullFrom(decryptedArgs["viaGuidedSelection"]), StartParameter = decryptedArgs["startParameter"] }; return(View("~\\Views\\Search\\Coronavirus_Explainer.cshtml", model)); }