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);
        }