/// <summary> /// Creates the page instance. /// </summary> /// <returns></returns> public override UPMSearchPage CreatePageInstance() { this.InfoAreaId = this.ViewReference.ContextValueForKey("InfoArea"); this.ConfigName = this.ViewReference.ContextValueForKey("ConfigName"); string searchTypeString = this.ViewReference.ContextValueForKey("InitialSearchType"); SearchPageSearchType searchType = SearchPageSearchType.OfflineSearch; string fullTextSearchString = this.ViewReference.ContextValueForKey("FullTextSearch"); this.FullTextSearch = !(string.IsNullOrEmpty(fullTextSearchString) || fullTextSearchString == "false"); this.MinSearchTextLength = Convert.ToInt32(this.ViewReference.ContextValueForKey("MinSearchTextLength")); if (this.MinSearchTextLength == 0) { this.MinSearchTextLength = 1; } if (!string.IsNullOrEmpty(searchTypeString)) { searchType = (SearchPageSearchType)Convert.ToInt32(searchTypeString); } if (string.IsNullOrEmpty(this.InfoAreaId) && this.ViewReference.ContextValueForKey("Modus") == "GlobalSearch") { if (string.IsNullOrEmpty(this.ConfigName)) { this.ConfigName = "default"; } } List <IIdentifier> identifiers = new List <IIdentifier>(); IConfigurationUnitStore configStore = ConfigurationUnitStore.DefaultStore; QuickSearch quickSearch = configStore.QuickSearchByName(this.ConfigName); int infoAreaCount = quickSearch?.NumberOfInfoAreas ?? 0; for (int i = 0; i < infoAreaCount; i++) { string currentInfoAreaId = quickSearch.InfoAreaIdAtIndex(i); identifiers.Add(new RecordIdentifier(currentInfoAreaId, null)); } MultipleIdentifier multipleIdentifier = new MultipleIdentifier(identifiers); UPMSearchPage page = new UPMSearchPage(multipleIdentifier); page.SearchType = searchType; page.AvailableOnlineSearch = !this.ViewReference.ContextValueIsSet("hideOnlineOfflineButton"); page.Style = UPMTableStyle.UPMGlobalSearchTableStyle; if (searchType == SearchPageSearchType.OnlineSearch) { page.InitiallyOnline = true; } return(page); }
/// <summary> /// Internal method to create a Page Instance /// </summary> /// <param name="configStore"> /// IConfigurationUnitStore /// </param> /// <param name="searchType"> /// SearchPageSearchType /// </param> /// <returns> /// UPMSearchPage /// </returns> private UPMSearchPage CreatePageInstanceWorker(IConfigurationUnitStore configStore, SearchPageSearchType searchType) { var defaultRadiusMeter = 100; var defaultRadius = ViewReference.ContextValueForKey("DefaultRadius"); if (!string.IsNullOrWhiteSpace(defaultRadius)) { defaultRadiusMeter = defaultRadius.ToInt(); } usedFilters = new Dictionary <string, UPMFilter>(); var identifiers = new List <IIdentifier>(); var filters = new List <UPMFilter>(); PopulatePageFilterAndIdentifierLists(configStore, filters, identifiers, defaultRadiusMeter); var multipleIdentifier = new MultipleIdentifier(identifiers); var page = new UPMSearchPage(multipleIdentifier) { SearchType = searchType, AvailableFilters = filters, Style = UPMTableStyle.UPMStandardTableStyle, AvailableOnlineSearch = !ViewReference.ContextValueIsSet("hideOnlineOfflineButton") }; return(page); }
/// <summary> /// Creates the page instance. /// </summary> /// <returns></returns> public override UPMSearchPage CreatePageInstance() { this.InfoAreaId = this.ViewReference.ContextValueForKey("InfoArea"); this.ConfigName = this.ViewReference.ContextValueForKey("Config1Name"); IConfigurationUnitStore configStore = ConfigurationUnitStore.DefaultStore; string searchTypeString = this.ViewReference.ContextValueForKey("InitialSearchType"); SearchPageSearchType searchType = Convert.ToInt32(searchTypeString) == 2 ? SearchPageSearchType.OnlineSearch : SearchPageSearchType.OfflineSearch; if (string.IsNullOrEmpty(this.InfoAreaId) && this.ViewReference.ContextValueForKey("Modus") == "MultiSearch") { if (string.IsNullOrEmpty(this.ConfigName)) { this.ConfigName = "default"; } } List <IIdentifier> identifiers = new List <IIdentifier>(); this.usedFilters = new Dictionary <string, UPMFilter>(); List <UPMFilter> filters = new List <UPMFilter>(); string geoFilter1 = this.ViewReference.ContextValueForKey("Config1Filter"); UPMFilter filter = UPMFilter.FilterForName(geoFilter1); SearchAndList searchConfiguration = configStore.SearchAndListByName(this.ConfigName); var infoAreaId = searchConfiguration != null ? searchConfiguration.InfoAreaId : this.ConfigName; if (filter != null) { filter.Active = true; this.usedFilters[this.ConfigName] = filter; filters.Add(filter); } identifiers.Add(new RecordIdentifier(infoAreaId, null)); for (int i = 2; i < 99; i++) { string configNameKey = $"Config{i}Name"; string configName2 = this.ViewReference.ContextValueForKey(configNameKey); if (!string.IsNullOrEmpty(configName2)) { string configFilterKey = $"Config{i}Filter"; string geoFilter2 = this.ViewReference.ContextValueForKey(configFilterKey); UPMFilter filter2 = UPMFilter.FilterForName(geoFilter2); SearchAndList searchConfiguration2 = configStore.SearchAndListByName(configName2); if (filter2 != null) { filter2.Active = true; this.usedFilters[configName2] = filter2; filters.Add(filter2); } infoAreaId = (searchConfiguration2 != null) ? searchConfiguration2.InfoAreaId : configName2; identifiers.Add(new RecordIdentifier(infoAreaId, null)); } else { break; } } MultipleIdentifier multipleIdentifier = new MultipleIdentifier(identifiers); UPMSearchPage page = new UPMSearchPage(multipleIdentifier) { SearchType = searchType, AvailableFilters = filters, Style = UPMTableStyle.UPMStandardTableStyle, AvailableOnlineSearch = !this.ViewReference.ContextValueIsSet("hideOnlineOfflineButton"), InitiallyOnline = searchType == SearchPageSearchType.OnlineSearch, HideSearchBar = true, ViewType = SearchPageViewType.List }; return(page); }