public static SearchTypeStubSearchVm GetSearchTypeSearchVm(SearchTypeStubSearchVm searchVm)
        {
            List <CityListingsInfo> result;

            if (searchVm.PageType == PageType.ServiceProvidersByType)
            {
                CountryStubSearchModel countryStubSearchModel = new CountryStubSearchModel();
                countryStubSearchModel.Criteria = searchVm.Criteria.ToSearchCriteria();
                countryStubSearchModel.MaxCount = ConfigurationManager.Instance.SearchTypeStubCitiesMaxCount;
                result = SearchBc.Instance.SearchServiceProvidersStubCities(countryStubSearchModel).Result;
            }
            else
            {
                CommunityCountryStubSearchModel communityCountryStubSearchModel = new CommunityCountryStubSearchModel();
                communityCountryStubSearchModel.Criteria    = searchVm.Criteria.ToSearchCriteria();
                communityCountryStubSearchModel.ListingType = searchVm.PageType.ToSearchType().ToListingType();
                communityCountryStubSearchModel.MaxCount    = ConfigurationManager.Instance.SearchTypeStubCitiesMaxCount;
                result = SearchBc.Instance.SearchCommunitiesStubCities(communityCountryStubSearchModel).Result;
            }
            searchVm.Result      = result.MapToCitiesTabs(searchVm.PageType.ToSearchType());
            searchVm.Seo         = SeoHelper.GetSeo(searchVm);
            searchVm.SearchBar   = GetSearchBarVm(searchVm);
            searchVm.Breadcrumbs = GetBreadcrumbs(searchVm);
            return(searchVm);
        }
        public CommunityCountryStubSearchModel SearchCommunitiesStubCities(CommunityCountryStubSearchModel searchModel)
        {
            SearchCriteria criteria = searchModel.Criteria;

            searchModel.Criteria = searchModel.Criteria.ToSearchableCriteria();
            searchModel          = this._searchDac.SearchCountryStubCitiesWithCommunities(searchModel);
            searchModel.Criteria = criteria;
            return(searchModel);
        }
        public CountryStubSearchModel SearchStubCities(CountryStubSearchModel searchModel)
        {
            SearchCriteria criteria = searchModel.Criteria;

            searchModel.Criteria = searchModel.Criteria.ToSearchableCriteria();
            searchModel          = this._searchDac.SearchCountryStubCitiesWithServices(searchModel);
            searchModel.Criteria = criteria;
            CommunityCountryStubSearchModel communityCountryStubSearchModel = new CommunityCountryStubSearchModel()
            {
                Criteria         = searchModel.Criteria,
                ListingType      = ListingType.ActiveAdultCommunities,
                MaxCount         = searchModel.MaxCount,
                IsMarketAreaOnly = searchModel.IsMarketAreaOnly
            };

            searchModel.Result.AddRange(this.SearchCommunitiesStubCities(communityCountryStubSearchModel).Result);
            communityCountryStubSearchModel.ListingType = ListingType.ActiveAdultHomes;
            searchModel.Result.AddRange(this.SearchCommunitiesStubCities(communityCountryStubSearchModel).Result);
            communityCountryStubSearchModel.ListingType = ListingType.SeniorHousingAndCare;
            searchModel.Result.AddRange(this.SearchCommunitiesStubCities(communityCountryStubSearchModel).Result);
            searchModel.Result = searchModel.Result.DistinctBy <CityListingsInfo, ISearchCriteria>((CityListingsInfo i) => i.SearchCriteria, new SearchCriteriaComparer()).ToList <CityListingsInfo>();
            return(searchModel);
        }
        public CommunityCountryStubSearchModel SearchCountryStubCitiesWithCommunities(CommunityCountryStubSearchModel searchModel)
        {
            GetCountrySearchStubCommand getCountrySearchStubCommand = new GetCountrySearchStubCommand(searchModel, new ListingType?(searchModel.ListingType));

            getCountrySearchStubCommand.Execute();
            searchModel.Result = getCountrySearchStubCommand.CommandResult;
            return(searchModel);
        }