/// <summary> /// Loads drop-down lists. /// </summary> private void LoadDropDowns() { // Init operands if (drpLanguage.Items.Count == 0) { drpLanguage.Items.Add(new ListItem(GetString("transman.translatedto"), "=")); drpLanguage.Items.Add(new ListItem(GetString("transman.nottranslatedto"), "<>")); } // Get site indexes var indexes = SearchIndexSiteInfoProvider.GetSiteIndexes(SiteContext.CurrentSiteID) .Where("IndexType", QueryOperator.Equals, TreeNode.OBJECT_TYPE) .Where("IndexProvider", QueryOperator.Equals, SearchIndexInfo.LUCENE_SEARCH_PROVIDER); foreach (SearchIndexInfo index in indexes) { drpIndexes.Items.Add(new ListItem(index.IndexDisplayName, index.IndexName)); } drpIndexes.Items.Insert(0, new ListItem(GetString("search.sqlsearch"), SQL)); // Init Search for drop down list ControlsHelper.FillListControlWithEnum <SearchModeEnum>(drpSearchMode, "srch.dialog", useStringRepresentation: true); drpSearchMode.SelectedValue = QueryHelper.GetString("searchmode", EnumHelper.GetDefaultValue <SearchModeEnum>().ToStringRepresentation()); }
public void RaisePostBackEvent(string eventArgument) { if (eventArgument == "saved") { SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(ItemID); if (sii.IndexType.Equals(Treenode.OBJECT_TYPE, StringComparison.OrdinalIgnoreCase) || (sii.IndexType == SearchHelper.DOCUMENTS_CRAWLER_INDEX)) { if (!SearchIndexCultureInfoProvider.SearchIndexHasAnyCulture(sii.IndexID)) { ShowError(GetString("index.noculture")); return; } if (!SearchIndexSiteInfoProvider.SearchIndexHasAnySite(sii.IndexID)) { ShowError(GetString("index.nosite")); return; } } if (SearchHelper.CreateRebuildTask(ItemID)) { ShowInformation(GetString("srch.index.rebuildstarted")); } else { ShowError(GetString("index.nocontent")); } } }
/// <summary> /// Starts the search index rebuild task. /// </summary> private void Rebuild() { // Extra check for document index if ((SearchIndex.IndexType.Equals(TreeNode.OBJECT_TYPE, StringComparison.OrdinalIgnoreCase) || (SearchIndex.IndexType == SearchHelper.DOCUMENTS_CRAWLER_INDEX))) { // Check if there is at least one site assigned if (!SearchIndexSiteInfoProvider.SearchIndexHasAnySite(SearchIndex.IndexID)) { ShowError(GetString("index.nosite")); return; } // Check if there is any culture assigned if (!SearchIndexCultureInfoProvider.SearchIndexHasAnyCulture(SearchIndex.IndexID)) { ShowError(GetString("index.noculture")); return; } } if (!SearchHelper.CreateRebuildTask(SearchIndex.IndexID)) { ShowError(GetString("index.nocontent")); return; } RaiseAsyncIndexTaskStarted(); ShowInformation(GetString("srch.index.rebuildstarted")); }
public void RaisePostBackEvent(string eventArgument) { // Rebuild search index if (SearchIndexInfoProvider.SearchEnabled) { SiteInfo si = SiteInfoProvider.GetSiteInfo(siteId); if (si != null) { // Get all indexes depending on given site DataSet result = SearchIndexSiteInfoProvider.GetSiteSearchIndexes(si.SiteID); if (!DataHelper.DataSourceIsEmpty(result)) { List <string> items = new List <string>(); SearchIndexInfo sii = null; // Add all indexes to rebuild queue foreach (DataRow dr in result.Tables[0].Rows) { sii = SearchIndexInfoProvider.GetSearchIndexInfo((int)dr["IndexID"]); if (sii != null) { items.Add(sii.IndexName); } } // Rebuild all indexes SearchTaskInfoProvider.CreateMultiTask(SearchTaskTypeEnum.Rebuild, null, null, items, true); } } lblInfo.Text = GetString("srch.index.rebuildstarted"); lblInfo.Visible = true; } }
/// <summary> /// Loads drop-down lists. /// </summary> private void LoadDropDowns() { // Init operands if (drpLanguage.Items.Count == 0) { drpLanguage.Items.Add(new ListItem(GetString("transman.translatedto"), "=")); drpLanguage.Items.Add(new ListItem(GetString("transman.nottranslatedto"), "<>")); } // Get site indexes DataSet ds = SearchIndexSiteInfoProvider.GetIndexSites("IndexId", "IndexSiteID = " + CMSContext.CurrentSiteID + " AND IndexID IN (SELECT IndexID FROM CMS_SearchIndex WHERE IndexType = N'" + PredefinedObjectType.DOCUMENT + "')", null, 0); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(ValidationHelper.GetInteger(dr["IndexId"], 0)); if ((sii != null) && (sii.IndexType == PredefinedObjectType.DOCUMENT)) { drpIndexes.Items.Add(new ListItem(sii.IndexDisplayName, sii.IndexName)); } } } drpIndexes.Items.Insert(0, new ListItem(GetString("search.sqlsearch"), SQL)); // Init Search for drop down list DataHelper.FillListControlWithEnum(typeof(SearchModeEnum), drpSearchMode, "srch.dialog.", SearchHelper.GetSearchModeString); drpSearchMode.SelectedValue = QueryHelper.GetString("searchmode", SearchHelper.GetSearchModeString(SearchModeEnum.AnyWord)); }
public void RaisePostBackEvent(string eventArgument) { if (eventArgument == "saved") { // Check if document index has at least one culture specified if (!SearchIndexCultureInfoProvider.SearchIndexHasAnyCulture(indexId)) { ShowError(GetString("index.noculture")); return; } // Check if there is at least one site assigned if (!SearchIndexSiteInfoProvider.SearchIndexHasAnySite(indexId)) { ShowError(GetString("index.nosite")); return; } if (!SearchHelper.CreateRebuildTask(indexId)) { ShowError(GetString("index.nocontent")); return; } ShowInformation(GetString("srch.index.rebuildstarted")); } }
/// <summary> /// Returns string with site ids where user is member. /// </summary> private string GetIndexSites() { var siteIDs = SearchIndexSiteInfoProvider.GetIndexSiteBindings(indexId).Column("IndexSiteID").Select(x => x.IndexSiteID).ToList(); if (siteIDs.Count > 0) { return(TextHelper.Join(";", siteIDs)); } return(String.Empty); }
/// <summary> /// Returns string with site ids where user is member. /// </summary> private string GetIndexSites() { DataSet ds = SearchIndexSiteInfoProvider.GetIndexSites("SiteID", "IndexID = " + indexId, null, 0); if (!DataHelper.DataSourceIsEmpty(ds)) { return(TextHelper.Join(";", SystemDataHelper.GetStringValues(ds.Tables[0], "SiteID"))); } return(String.Empty); }
/// <summary> /// Saves changes in site assignment. /// </summary> protected void SaveIndexes() { // Check permissions if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.searchindex", CMSAdminControl.PERMISSION_MODIFY)) { RedirectToAccessDenied("cms.searchindex", CMSAdminControl.PERMISSION_MODIFY); } // Remove old items string newValues = ValidationHelper.GetString(usSites.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int siteId = ValidationHelper.GetInteger(item, 0); // Unassign site from index SearchIndexSiteInfoProvider.DeleteSearchIndexSiteInfo(indexId, siteId); } } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int siteId = ValidationHelper.GetInteger(item, 0); // Assign site to index SearchIndexSiteInfoProvider.AddSearchIndexToSite(indexId, siteId); } } } // Show saved message with rebuild link ShowChangesSaved(); ShowInformation(String.Format(GetString("srch.indexrequiresrebuild"), "<a href=\"javascript:" + Page.ClientScript.GetPostBackEventReference(this, "saved") + "\">" + GetString("General.clickhere") + "</a>")); }
/// <summary> /// Saves changes in site assignment. /// </summary> protected void SaveIndexes() { // Check permissions if (!CMSContext.CurrentUser.IsAuthorizedPerResource("cms.searchindex", CMSAdminControl.PERMISSION_MODIFY)) { RedirectToAccessDenied("cms.searchindex", CMSAdminControl.PERMISSION_MODIFY); } // Remove old items string newValues = ValidationHelper.GetString(usSites.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int siteId = ValidationHelper.GetInteger(item, 0); // Unassign site from index SearchIndexSiteInfoProvider.DeleteSearchIndexSiteInfo(indexId, siteId); } } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int siteId = ValidationHelper.GetInteger(item, 0); // Assign site to index SearchIndexSiteInfoProvider.AddSearchIndexToSite(indexId, siteId); } } } // Show saved message with rebuild link lblInfo.Visible = true; }
/// <summary> /// Creates or rebuild department content search index. /// </summary> /// <param name="departmentNode">Department node</param> private void CreateDepartmentContentSearchIndex(TreeNode departmentNode) { string codeName = "default_department_" + departmentNode.NodeGUID; string departmentName = departmentNode.GetDocumentName(); SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(codeName); if (sii == null) { // Create search index info sii = new SearchIndexInfo(); sii.IndexName = codeName; string suffix = " - Default"; sii.IndexDisplayName = TextHelper.LimitLength(departmentName, 200 - suffix.Length, "") + suffix; sii.IndexAnalyzerType = SearchAnalyzerTypeEnum.StandardAnalyzer; sii.IndexType = TreeNode.OBJECT_TYPE; sii.IndexIsCommunityGroup = false; sii.IndexProvider = SearchIndexInfo.LUCENE_SEARCH_PROVIDER; // Create search index settings info SearchIndexSettingsInfo sisi = new SearchIndexSettingsInfo(); sisi.ID = Guid.NewGuid(); sisi.Path = departmentNode.NodeAliasPath + "/%"; sisi.Type = SearchIndexSettingsInfo.TYPE_ALLOWED; sisi.ClassNames = ""; // Create settings item SearchIndexSettings sis = new SearchIndexSettings(); // Update settings item sis.SetSearchIndexSettingsInfo(sisi); // Update xml value sii.IndexSettings = sis; SearchIndexInfoProvider.SetSearchIndexInfo(sii); // Assign to current website SearchIndexSiteInfoProvider.AddSearchIndexToSite(sii.IndexID, SiteContext.CurrentSiteID); } // Add current culture to search index CultureInfo ci = CultureInfoProvider.GetCultureInfo(departmentNode.DocumentCulture); SearchIndexCultureInfoProvider.AddSearchIndexCulture(sii.IndexID, ci.CultureID); // Rebuild search index SearchTaskInfoProvider.CreateTask(SearchTaskTypeEnum.Rebuild, null, null, sii.IndexName, sii.IndexID); }
/// <summary> /// Creates content search index. /// </summary> /// <param name="group">Particular group info object</param> private void CreateGroupContentSearchIndex(GroupInfo group) { string codeName = "default_group_" + group.GroupGUID; SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(codeName); if (sii == null) { // Create search index info sii = new SearchIndexInfo(); sii.IndexName = codeName; const string suffix = " - Default"; sii.IndexDisplayName = TextHelper.LimitLength(group.GroupDisplayName, 200 - suffix.Length, string.Empty) + suffix; sii.IndexAnalyzerType = SearchAnalyzerTypeEnum.StandardAnalyzer; sii.IndexType = TreeNode.OBJECT_TYPE; sii.IndexIsCommunityGroup = false; sii.IndexProvider = SearchIndexInfo.LUCENE_SEARCH_PROVIDER; // Create search index settings info SearchIndexSettingsInfo sisi = new SearchIndexSettingsInfo(); sisi.ID = Guid.NewGuid(); sisi.Path = mGroupTemplateTargetAliasPath + "/" + group.GroupName + "/%"; sisi.SiteName = SiteContext.CurrentSiteName; sisi.Type = SearchIndexSettingsInfo.TYPE_ALLOWED; sisi.ClassNames = ""; // Create settings item SearchIndexSettings sis = new SearchIndexSettings(); // Update settings item sis.SetSearchIndexSettingsInfo(sisi); // Update xml value sii.IndexSettings = sis; SearchIndexInfoProvider.SetSearchIndexInfo(sii); // Assign to current website and current culture SearchIndexSiteInfoProvider.AddSearchIndexToSite(sii.IndexID, SiteContext.CurrentSiteID); CultureInfo ci = DocumentContext.CurrentDocumentCulture; if (ci != null) { SearchIndexCultureInfoProvider.AddSearchIndexCulture(sii.IndexID, ci.CultureID); } // Register rebuild index action SearchTaskInfoProvider.CreateTask(SearchTaskTypeEnum.Rebuild, null, null, sii.IndexName, sii.IndexID); } }
/// <summary> /// Resets all boxes. /// </summary> public void LoadControls() { SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(ItemID); string siteWhere = String.Empty; // Load only those site to which the index is assigned var siteIDs = SearchIndexSiteInfoProvider.GetIndexSiteBindings(ItemID).Column("IndexSiteID").Select(X => X.IndexSiteID.ToString()).ToList(); if (siteIDs.Count > 0) { siteWhere = SqlHelper.GetWhereCondition <string>("SiteID", siteIDs, false); // Preselect current site if it is assigned to index if (!RequestHelper.IsPostBack() && siteIDs.Contains(SiteContext.CurrentSiteID.ToString())) { selSite.Value = SiteContext.CurrentSiteName; } selSite.UniSelector.WhereCondition = siteWhere; selSite.Reload(false); } else { pnlForm.Visible = false; ShowError(GetString("srch.index.nositeselected")); } // If we are editing existing search index if (sii != null) { SearchIndexSettings sis = new SearchIndexSettings(); sis.LoadData(sii.IndexSettings.GetData()); SearchIndexSettingsInfo sisi = sis.GetSearchIndexSettingsInfo(ItemGUID); if (sisi != null) { selectForm.Value = ValidationHelper.GetString(sisi.GetValue("FormName"), ""); txtWhere.TextArea.Text = sisi.WhereCondition; selSite.Value = sisi.SiteName; } } // Init controls SetControlsStatus(false); }
/// <summary> /// Adds search index to site. Called when the "Add index to site" button is pressed. /// Expects the CreateSearchIndex method to be run first. /// </summary> private bool AddSearchIndexToSite() { // Get the search index SearchIndexInfo index = SearchIndexInfoProvider.GetSearchIndexInfo("MyNewIndex"); if (index != null) { int indexId = index.IndexID; int siteId = CMSContext.CurrentSiteID; // Save the binding SearchIndexSiteInfoProvider.AddSearchIndexToSite(indexId, siteId); return(true); } return(false); }
/// <summary> /// Creates forum search index. /// </summary> /// <param name="group">Particular group info object</param> private void CreateGroupForumSearchIndex(GroupInfo group) { string codeName = "forums_group_" + group.GroupGUID; SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(codeName); if (sii == null) { // Create search index info sii = new SearchIndexInfo(); sii.IndexName = codeName; const string suffix = " - Forums"; sii.IndexDisplayName = TextHelper.LimitLength(group.GroupDisplayName, 200 - suffix.Length, string.Empty) + suffix; sii.IndexAnalyzerType = SearchAnalyzerTypeEnum.StandardAnalyzer; sii.IndexType = PredefinedObjectType.FORUM; sii.IndexIsCommunityGroup = false; sii.IndexProvider = SearchIndexInfo.LUCENE_SEARCH_PROVIDER; // Create search index settings info SearchIndexSettingsInfo sisi = new SearchIndexSettingsInfo(); sisi.ID = Guid.NewGuid(); sisi.ForumNames = "*_group_" + group.GroupGUID; sisi.Type = SearchIndexSettingsInfo.TYPE_ALLOWED; sisi.SiteName = SiteContext.CurrentSiteName; // Create settings item SearchIndexSettings sis = new SearchIndexSettings(); // Update settings item sis.SetSearchIndexSettingsInfo(sisi); // Update xml value sii.IndexSettings = sis; SearchIndexInfoProvider.SetSearchIndexInfo(sii); // Assing to current website and current culture SearchIndexSiteInfoProvider.AddSearchIndexToSite(sii.IndexID, SiteContext.CurrentSiteID); CultureInfo ci = DocumentContext.CurrentDocumentCulture; if (ci != null) { SearchIndexCultureInfoProvider.AddSearchIndexCulture(sii.IndexID, ci.CultureID); } } }
/// <summary> /// Creates forum search index. /// </summary> /// <param name="departmentNode">Department node</param> private void CreateDepartmentForumSearchIndex(TreeNode departmentNode) { string codeName = "forums_department_" + departmentNode.NodeGUID; string departmentName = departmentNode.GetDocumentName(); SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(codeName); if (sii == null) { // Create search index info sii = new SearchIndexInfo(); sii.IndexName = codeName; string suffix = " - Forums"; sii.IndexDisplayName = TextHelper.LimitLength(departmentName, 200 - suffix.Length, "") + suffix; sii.IndexAnalyzerType = SearchAnalyzerTypeEnum.StandardAnalyzer; sii.IndexType = PredefinedObjectType.FORUM; sii.IndexIsCommunityGroup = false; sii.IndexProvider = SearchIndexInfo.LUCENE_SEARCH_PROVIDER; // Create search index settings info SearchIndexSettingsInfo sisi = new SearchIndexSettingsInfo(); sisi.ID = Guid.NewGuid(); sisi.Type = SearchIndexSettingsInfo.TYPE_ALLOWED; sisi.SiteName = SiteContext.CurrentSiteName; sisi.ForumNames = "*_department_" + departmentNode.NodeGUID; // Create settings item SearchIndexSettings sis = new SearchIndexSettings(); // Update settings item sis.SetSearchIndexSettingsInfo(sisi); // Update xml value sii.IndexSettings = sis; SearchIndexInfoProvider.SetSearchIndexInfo(sii); // Assign to current website and current culture SearchIndexSiteInfoProvider.AddSearchIndexToSite(sii.IndexID, SiteContext.CurrentSiteID); CultureInfo ci = CultureInfoProvider.GetCultureInfo(departmentNode.DocumentCulture); SearchIndexCultureInfoProvider.AddSearchIndexCulture(sii.IndexID, ci.CultureID); } }
/// <summary> /// Removes search index from site. Called when the "Remove index from site" button is pressed. /// Expects the AddSearchIndexToSite method to be run first. /// </summary> private bool RemoveSearchIndexFromSite() { // Get the search index SearchIndexInfo removeIndex = SearchIndexInfoProvider.GetSearchIndexInfo("MyNewIndex"); if (removeIndex != null) { int siteId = CMSContext.CurrentSiteID; // Get the binding SearchIndexSiteInfo indexSite = SearchIndexSiteInfoProvider.GetSearchIndexSiteInfo(removeIndex.IndexID, siteId); // Delete the binding SearchIndexSiteInfoProvider.DeleteSearchIndexSiteInfo(indexSite); return(true); } return(false); }
/// <summary> /// Handles click on rebuild link (after sites are saved). /// </summary> /// <param name="eventArgument">Event argument</param> public void RaisePostBackEvent(string eventArgument) { if (eventArgument == "saved") { // Check permissions if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("cms.searchindex", CMSAdminControl.PERMISSION_MODIFY)) { RedirectToAccessDenied("cms.searchindex", CMSAdminControl.PERMISSION_MODIFY); } SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(indexId); if (sii.IndexType.Equals(CMS.DocumentEngine.TreeNode.OBJECT_TYPE, StringComparison.OrdinalIgnoreCase) || (sii.IndexType == SearchHelper.DOCUMENTS_CRAWLER_INDEX)) { if (!SearchIndexCultureInfoProvider.SearchIndexHasAnyCulture(sii.IndexID)) { ShowError(GetString("index.noculture")); return; } if (!SearchIndexSiteInfoProvider.SearchIndexHasAnySite(sii.IndexID)) { ShowError(GetString("index.nosite")); return; } } if (SearchHelper.CreateRebuildTask(indexId)) { ShowInformation(GetString("srch.index.rebuildstarted")); } else { ShowError(GetString("index.nocontent")); } } }
protected override void OnLoad(EventArgs e) { base.OnLoad(e); // Module forums is not available if (!(ModuleManager.IsModuleLoaded(ModuleName.FORUMS))) { return; } selForum = LoadUserControl("~/CMSModules/Forums/FormControls/ForumSelector.ascx") as FormEngineUserControl; if (selForum != null) { // Set default vaules for forum selector selForum.IsLiveSite = false; selForum.SetValue("selectionmode", SelectionModeEnum.MultipleTextBox); selForum.SetValue("DisplayAdHocOption", false); plcForumSelector.Controls.Add(selForum); } // Set events and default values for site selector selSite.AllowAll = false; selSite.UseCodeNameForSelection = true; selSite.DropDownSingleSelect.AutoPostBack = true; selSite.UniSelector.OnSelectionChanged += UniSelector_OnSelectionChanged; LoadControls(); if (ItemType == SearchIndexSettingsInfo.TYPE_ALLOWED) { selSite.AllowAll = true; } var siteIDs = SearchIndexSiteInfoProvider.GetIndexSiteBindings(ItemID).Select(x => x.IndexSiteID).ToList(); if (siteIDs.Any()) { // Preselect current site if it is assigned to index var sisiId = QueryHelper.GetGuid("guid", Guid.Empty); var isNew = sisiId == Guid.Empty; if (!RequestHelper.IsPostBack() && isNew && siteIDs.Contains(SiteContext.CurrentSiteID)) { selSite.Value = SiteContext.CurrentSiteName; } selSite.UniSelector.WhereCondition = SqlHelper.GetWhereInCondition("SiteID", siteIDs, false, false); } else { selSite.Enabled = false; selForum.Enabled = false; btnOk.Enabled = false; ShowError(GetString("srch.index.nositeselected")); } selSite.Reload(true); selForum.SetValue("SiteName", Convert.ToString(selSite.Value)); // Init controls if (!RequestHelper.IsPostBack()) { SetControlsStatus(); } }
protected void Page_Load(object sender, EventArgs e) { // Show panel with message how to enable indexing ucDisabledModule.SettingsKeys = "CMSSearchIndexingEnabled"; ucDisabledModule.InfoText = GetString("srch.searchdisabledinfo"); // Module forums is not available if (!(ModuleEntry.IsModuleRegistered(ModuleEntry.FORUMS) && ModuleEntry.IsModuleLoaded(ModuleEntry.FORUMS))) { return; } selForum = this.LoadUserControl("~/CMSModules/Forums/FormControls/ForumSelector.ascx") as FormEngineUserControl; if (selForum != null) { selForum.IsLiveSite = false; plcForumSelector.Controls.Add(selForum); } selSite.AllowAll = false; selSite.UseCodeNameForSelection = true; string siteWhere = String.Empty; DataSet ds = SearchIndexSiteInfoProvider.GetIndexSites("SiteID", "IndexID = " + ItemID, null, 0); if (!DataHelper.DataSourceIsEmpty(ds)) { foreach (DataRow dr in ds.Tables[0].Rows) { siteWhere += dr["SiteID"] + ","; } siteWhere = "," + siteWhere; // Preselect current site if it is assigned to index if (!RequestHelper.IsPostBack() && siteWhere.Contains("," + CMSContext.CurrentSiteID + ",")) { selSite.Value = CMSContext.CurrentSiteName; } siteWhere = siteWhere.Trim(','); siteWhere = "SiteID IN (" + siteWhere + ")"; selSite.UniSelector.WhereCondition = siteWhere; } else { selSite.Enabled = false; selForum.Enabled = false; btnOk.Enabled = false; ShowError(GetString("srch.index.nositeselected")); } // Set default vaules for forum selector selForum.SetValue("selectionmode", SelectionModeEnum.MultipleTextBox); selForum.SetValue("DisplayAdHocOption", false); selForum.SetValue("SiteName", Convert.ToString(selSite.Value)); // Set events and default values for site selector selSite.UniSelector.OnSelectionChanged += new EventHandler(UniSelector_OnSelectionChanged); selSite.DropDownSingleSelect.AutoPostBack = true; LoadControls(); if (ItemType == SearchIndexSettingsInfo.TYPE_ALLOWED) { selSite.AllowAll = true; } // Init controls if (!RequestHelper.IsPostBack()) { selForum.Enabled = true; string siteName = ValidationHelper.GetString(selSite.Value, String.Empty); if (String.IsNullOrEmpty(siteName) || (siteName == "-1")) { selForum.Enabled = false; } else { selForum.SetValue("SiteName", siteName); SetControlsStatus(false); } } }
/// <summary> /// Sets data to database. /// </summary> protected void btnOK_Click(object sender, EventArgs e) { // Get code name string codeName = txtCodeName.Text.Trim(); // Perform validation string errorMessage = new Validator().NotEmpty(codeName, rfvCodeName.ErrorMessage) .NotEmpty(txtDisplayName.Text, rfvDisplayName.ErrorMessage).Result; // Check CodeName for identifier format if (!ValidationHelper.IsCodeName(codeName)) { errorMessage = GetString("General.ErrorCodeNameInIdentifierFormat"); } // Check length of code name if (codeName.Length > codeNameLength) { errorMessage = GetString("srch.codenameexceeded"); } if (errorMessage == "") { // Create new SearchIndexInfo sii = SearchIndexInfoProvider.GetSearchIndexInfo(codeName); if (sii == null) { sii = new SearchIndexInfo(); // Set the fields sii.IndexName = codeName; sii.IndexDisplayName = txtDisplayName.Text.Trim(); sii.IndexAnalyzerType = SearchIndexInfoProvider.AnalyzerCodenameToEnum(drpAnalyzer.SelectedValue); // Community indexing is not yet supported //sii.IndexIsCommunityGroup = chkCommunity.Checked; sii.IndexIsCommunityGroup = false; sii.IndexType = drpType.SelectedValue; sii.CustomAnalyzerAssemblyName = stopCustomControl.CustomAnalyzerAssemblyName; sii.CustomAnalyzerClassName = stopCustomControl.CustomAnalyzerClassName; sii.StopWordsFile = stopCustomControl.StopWordsFile; // Save the object SearchIndexInfoProvider.SetSearchIndexInfo(sii); ItemID = sii.IndexID; // Assign to current website if (chkAddIndexToCurrentSite.Checked) { SearchIndexSiteInfoProvider.AddSearchIndexToSite(sii.IndexID, CMSContext.CurrentSiteID); } // Redirect to edit mode RaiseOnSaved(); } else { // Error message - code name already exists ShowError(GetString("srch.index.codenameexists")); } } else { // Error message - validation ShowError(errorMessage); } }