private PsfSearchResultsViewModel GetPsfSearchResultsViewModel(PsfModel model, bool notPaging) { preSearchFilterStateManager.RestoreState(model.OptionsSelected); if (notPaging) { if (model.Section.SingleSelectedValue != null) { model.Section.SingleSelectOnly = true; var optionSelec = model.Section.Options.FirstOrDefault(o => o.OptionKey == model.Section.SingleSelectedValue); if (optionSelec != null) { optionSelec.IsSelected = true; } } else { model.Section.SingleSelectOnly = false; } var psfilterSection = mapper.Map <PreSearchFilterSection>(model.Section); preSearchFilterStateManager.UpdateSectionState(psfilterSection); } var filterState = preSearchFilterStateManager.GetPreSearchFilterState(); model.Sections = mapper.Map <List <PsfSection> >(filterState.Sections); var resultModel = new PsfSearchResultsViewModel { MainPageTitle = MainPageTitle, SecondaryText = SecondaryText, OverviewMessage = OverviewMessage, PreSearchFiltersModel = new PsfModel { OptionsSelected = preSearchFilterStateManager.GetStateJson(), Section = new PsfSection { PageNumber = notPaging ? model.Section.PageNumber++ : model.Section.PageNumber } }, BackPageUrl = new Uri(BackPageUrl, UriKind.RelativeOrAbsolute), BackPageUrlText = BackPageUrlText, JobProfileCategoryPage = JobProfileCategoryPage, SalaryBlankText = SalaryBlankText, CaveatTagMarkup = CaveatTagMarkup, CaveatMarkup = CaveatMarkup }; //Need to do this to force the model we have changed to refresh ModelState.Clear(); return(resultModel); }
private void SetUpStateMangerFakesAndCalls(PreSearchFilterType filterType, bool shouldSaveState, bool addNotApplicable = true) { var dummyStateSection = new PreSearchFilterSection { SectionDataType = filterType, Options = GetDummyPreSearchFilterOption(addNotApplicable) }; fakePsfStateManager = A.Fake <IPreSearchFilterStateManager>(ops => ops.Strict()); A.CallTo(() => fakePsfStateManager.GetSavedSection(A <string> ._, A <PreSearchFilterType> ._)).Returns(dummyStateSection); A.CallTo(() => fakePsfStateManager.RestoreOptions(A <PreSearchFilterSection> ._, A <IEnumerable <PreSearchFilter> > ._)).Returns(dummyStateSection); A.CallTo(() => fakePsfStateManager.GetStateJson()).Returns("DummyStateJson"); A.CallTo(() => fakePsfStateManager.ShouldSaveState(A <int> ._, A <int> ._)).Returns(shouldSaveState); A.CallTo(() => fakePsfStateManager.RestoreState(A <string> ._)).DoesNothing(); A.CallTo(() => fakePsfStateManager.SaveState(A <PreSearchFilterSection> ._)).DoesNothing(); A.CallTo(() => fakePsfStateManager.GetPreSearchFilterState()).Returns(A.Dummy <PreSearchFilterState>()); }
private async Task <int> GetNumberOfMatches(PsfModel model) { var fieldDefinitions = buildSearchFilterService.GetIndexFieldDefinitions(IndexFieldOperators); preSearchFilterStateManager.RestoreState(model.OptionsSelected); var filterState = preSearchFilterStateManager.GetPreSearchFilterState(); model.Sections = autoMapper.Map <List <PsfSection> >(filterState.Sections); var resultsModel = autoMapper.Map <PreSearchFiltersResultsModel>(model); var properties = new SearchProperties { Page = 0, Count = 0, FilterBy = buildSearchFilterService.BuildPreSearchFilters(resultsModel, fieldDefinitions.ToDictionary(k => k.Key, v => v.Value)) }; var results = await searchQueryService.SearchAsync("*", properties); return((int)results.Count); }