internal static List <AutocompleteVm> MapToAutocompleteVmList(this IEnumerable <SearchCriteria> criterias, SearchType searchType, string lookupString)
        {
            List <AutocompleteVm> autocompleteVms = new List <AutocompleteVm>();

            foreach (SearchCriteria criteria in criterias)
            {
                AutocompleteVm autocompleteVm = new AutocompleteVm();
                string         lookupLocation = ClientViewModelsProvider.GetLookupLocation(criteria);
                if (lookupString.IsNullOrEmpty() || !lookupLocation.StartsWith(lookupString, StringComparison.InvariantCultureIgnoreCase))
                {
                    autocompleteVm.Start = lookupLocation;
                }
                else
                {
                    autocompleteVm.Start = new string(lookupLocation.Take <char>(lookupString.Count <char>()).ToArray <char>());
                    autocompleteVm.End   = new string(lookupLocation.Skip <char>(lookupString.Count <char>()).ToArray <char>());
                }
                if (string.IsNullOrEmpty(autocompleteVm.LookupLocation))
                {
                    continue;
                }
                autocompleteVm.Url = MslcUrlBuilder.SearchUrl(criteria, searchType);
                SearchDepth depth = criteria.Depth;
                switch (depth)
                {
                case SearchDepth.State:
                {
                    autocompleteVm.Template = "State";
                    break;
                }

                case SearchDepth.City:
                {
                    autocompleteVm.Template = "City";
                    break;
                }

                case SearchDepth.Zip:
                {
                    autocompleteVm.Template = "Zip";
                    break;
                }

                default:
                {
                    depth = SearchDepth.Invalid;
                    break;
                }
                }
                if (depth == SearchDepth.Invalid)
                {
                    continue;
                }
                autocompleteVms.Add(autocompleteVm);
            }
            return(autocompleteVms);
        }
예제 #2
0
 public override void OnException(ExceptionContext filterContext)
 {
     base.OnException(filterContext);
     Logger.Error(LogMessages.MvcUipcClient.Custom.ServerExceptionError, filterContext.Exception);
     if (ConfigurationManager.Instance.IsExceptionRewrite)
     {
         filterContext.HttpContext.Response.Clear();
         filterContext.HttpContext.Response.StatusCode             = 500;
         filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
         filterContext.ExceptionHandled = true;
         if (filterContext.HttpContext.Request.IsAjaxRequest())
         {
             filterContext.Result = new AllowGetJsonResult(ErrorMessages.AjaxServerError);
             return;
         }
         filterContext.Result = new ViewResult
         {
             ViewName = "~/Views/Client/Error/Error.cshtml",
             ViewData = new ViewDataDictionary(ClientViewModelsProvider.GetStaticContent(PageType.Error500))
         };
     }
 }
        internal static CrosslinksVm MapToCrosslinksVm(this NearbySearchResult searchResult, ISearchCriteria sourceCriteria)
        {
            CrosslinksVm crosslinksVm = new CrosslinksVm();

            foreach (SearchCriteria nearbyCity in searchResult.NearbyCities)
            {
                if (!nearbyCity.MapToSearchCriteriaVm().Validate())
                {
                    continue;
                }
                LinkVm linkVm = new LinkVm()
                {
                    InnerText = ClientViewModelsProvider.GetLookupLocation(nearbyCity),
                    Href      = MslcUrlBuilder.SearchUrl(nearbyCity, sourceCriteria.SearchType())
                };
                crosslinksVm.Cities.Add(linkVm);
            }
            foreach (ListingType availableListingType in searchResult.AvailableListingTypes)
            {
                LinkVm linkVm1 = new LinkVm()
                {
                    InnerText = availableListingType.GetEnumLocalizedValue <ListingType>(),
                    Href      = MslcUrlBuilder.SearchUrl(sourceCriteria, availableListingType.ToSearchType())
                };
                crosslinksVm.Categories.Add(linkVm1);
            }
            if (searchResult.IsServiceProvidersAvailable)
            {
                LinkVm linkVm2 = new LinkVm()
                {
                    InnerText = "Products & Services",
                    Href      = MslcUrlBuilder.SearchUrl(sourceCriteria, SearchType.ProductsAndServices)
                };
                crosslinksVm.Categories.Add(linkVm2);
            }
            return(crosslinksVm);
        }