internal static List <LinkVm> MapToCitiesLinks(this IEnumerable <CityListingsInfo> cities, SearchType searchType, bool addCounting) { string str = (addCounting ? "{0}, {1} ({2})" : "{0}, {1}"); return(cities.Select <CityListingsInfo, LinkVm>((CityListingsInfo cityInfo) => { LinkVm linkVm = new LinkVm(); int listingsCount = SearchExtentions.GetListingsCount(cityInfo, searchType); linkVm.Href = MslcUrlBuilder.SearchUrl(cityInfo.SearchCriteria, searchType); linkVm.InnerText = string.Format(str, cityInfo.SearchCriteria.City(), cityInfo.SearchCriteria.StateCode(), listingsCount); return linkVm; }).ToList <LinkVm>()); }
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); }