private ActionResult DoSearch(int?page = null) { string uri = AdvisorHelper.GetValidAdvisorUri(); if (new AdvisorDetailManager().ShouldRedirectToMyAdvisor() && uri.IsNotNullOrEmpty() && Request.Url != null) { return(Redirect(uri + Request.Url.Query)); } if (IsPhone) { // Mobile var searchManager = new SearchManager(); var options = new SearchOptions { SearchType = SearchTypes.Advisor.ToString() }; var results = searchManager.GetFacetResultsForMobile(options); ViewBag.CurrentPage = page ?? 1; return(View("Search", results)); } else { // Desktop SearchResults results; if (page == null) { results = SearchResults(); return(View("Search", results)); } results = SearchResults(page.Value); return(results.Advisor.Results.IsNullOrEmpty() ? PageNotFoundActionResult() : View("Search", results)); } }
// [AjaxPost] public ActionResult ProductDetailVirtuosoAdvisorsPartial(RecommendedAdvisorFactors factors) { ICollection <AdvisorCardInfo> advisorCards = null; if (factors != null) { // here, we've already done the rules about 'does the user get to see the module' // this is response to click the button var recommendedAdvisors = AdvisorHelper.RetrieveRecommendedAdvisors(factors); // TODO: make the view model the RecommendedAdvisorResults or new VM (TBD) if (recommendedAdvisors.NumberDestinationSpecialistsForCountry > 1 && factors.ProductLocationCountry.IsNotNullOrEmpty()) { ViewBag.ProductLocationCountry = factors.ProductLocationCountry.Split('|').First(); } else if (recommendedAdvisors.NumberAdvisorsMatchingInterest > 1) { ViewBag.ProductInterestType = factors.InterestType; } advisorCards = recommendedAdvisors.AdvisorCards; } // If this is an advisor email marketing cobranded page, don't show the "Find different advisor link" var userInfo = FederatedLoginClient.User; ViewBag.ShowFindDifferentAdvisorLink = !(userInfo.IsMarketingProgram && userInfo.CobrandedAdvisorInfo.AdvisorId > 0); return(PartialView("Partial/_ProductDetail_RecommendedAdvisors", advisorCards)); }