private static SearchBarVm FillSearchTemplates(SearchBarVm searchBar)
        {
            List <SearchTemplates> searchTemplates = ConfigurationManager.Instance.SearchTemplates;

            if (searchTemplates.Any((SearchTemplates t) => t.CountryCode.Equals("USA", StringComparison.InvariantCultureIgnoreCase)))
            {
                SearchTemplates searchTemplates2 = searchTemplates.First((SearchTemplates t) => t.CountryCode.Equals("USA", StringComparison.InvariantCultureIgnoreCase));
                searchBar.Placeholder = searchTemplates2.Placeholder;
                searchBar.Templates   = new Dictionary <SearchType, List <AutocompleteVm> >();
                SearchType[] array = (SearchType[])Enum.GetValues(typeof(SearchType));
                foreach (SearchType searchType in array)
                {
                    List <AutocompleteVm> list = new List <AutocompleteVm>();
                    foreach (QueryTemplate template in searchTemplates2.Templates)
                    {
                        AutocompleteVm autocompleteVm = new AutocompleteVm();
                        autocompleteVm.Start    = template.LookupLocation;
                        autocompleteVm.Template = template.Template;
                        autocompleteVm.Url      = MslcUrlBuilder.AbsoluteUrl($"/{searchType.UrlPrefix()}{template.Url}");
                        list.Add(autocompleteVm);
                    }
                    searchBar.Templates.Add(searchType, list);
                }
            }
            return(searchBar);
        }
        internal static SearchBarVm GetSearchBarVm(SearchVm searchVm)
        {
            SearchBarVm searchBarVm = FillSearchTemplates(FillSearchTypeList(new SearchBarVm
            {
                SearchType = searchVm.Criteria.SearchType()
            }, searchVm));

            searchBarVm.LookupLocation = GetLookupLocation(searchVm.Criteria);
            return(searchBarVm);
        }
        private static SearchBarVm FillSearchTypeList(SearchBarVm searchBar, SearchVm searchVm)
        {
            List <SearchType> list       = ConverterHelper.EnumToList <SearchType>();
            SearchType        searchType = searchVm.Criteria.SearchType();

            searchBar.SearchTypeList = new List <SearchBarSelectListItem>();
            NearbySearchResult nearbySearchResult = GetNearbySearchResult(searchVm);

            if (nearbySearchResult != null)
            {
                searchBar.Crosslinks = nearbySearchResult.MapToCrosslinksVm(searchVm.Criteria);
            }
            foreach (SearchType item in list)
            {
                SearchBarSelectListItem searchBarSelectListItem = new SearchBarSelectListItem();
                searchBarSelectListItem.Text = item.GetEnumLocalizedValue();
                int num = (int)item;
                searchBarSelectListItem.Value    = num.ToString(CultureInfo.InvariantCulture);
                searchBarSelectListItem.Selected = item == searchType;
                ListingType type;
                if (nearbySearchResult == null)
                {
                    searchBarSelectListItem.UrlValue = MslcUrlBuilder.SearchUrl(searchVm.Criteria, item);
                }
                else if (item.TryToListingType(out type))
                {
                    searchBarSelectListItem.UrlValue = MslcUrlBuilder.SearchUrl(nearbySearchResult.AvailableListingTypes.Contains(type) ? searchVm.Criteria : searchVm.Criteria.CloneLowerDepth(), item);
                }
                else
                {
                    searchBarSelectListItem.UrlValue = MslcUrlBuilder.SearchUrl(nearbySearchResult.IsServiceProvidersAvailable ? searchVm.Criteria : searchVm.Criteria.CloneLowerDepth(), item);
                }
                searchBar.SearchTypeList.Add(searchBarSelectListItem);
            }
            return(searchBar);
        }