/// <summary> /// New groups selected event handler. /// </summary> void UniSelector_OnItemsSelected(object sender, EventArgs e) { // Get new items from selector string newValues = ValidationHelper.GetString(selectGroup.Value, null); string[] newGroupIDs = newValues.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newGroupIDs != null) { ContactGroupMemberInfo cgmi; ContactGroupInfo group; int groupID; // Get all selected groups foreach (string newGroupID in newGroupIDs) { groupID = ValidationHelper.GetInteger(newGroupID, 0); group = ContactGroupInfoProvider.GetContactGroupInfo(groupID); if (group == null) { // Group was most probably deleted after the uniselector // window was opened. continue; } if (UserCanManageGroup(group) || UserCanManageContact(editedContact)) { // Check if relation already exists cgmi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(groupID, editedContact.ContactID, ContactGroupMemberTypeEnum.Contact); if (cgmi == null) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(groupID, editedContact.ContactID, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } else if (!cgmi.ContactGroupMemberFromManual) { cgmi.ContactGroupMemberFromManual = true; ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(cgmi); } } else { RedirectToAccessDenied("CMS.ContactManagement", "ModifyContact or ModifyGroup"); } } // Reload unigrid LoadContactGroups(); contactGroups.ReloadData(); pnlUpdate.Update(); selectGroup.Value = null; } }
/// <summary> /// Items changed event handler. /// </summary> protected void UniSelector_OnItemsSelected(object sender, EventArgs e) { if (modifyCombined) { // Get new items from selector string newValues = ValidationHelper.GetString(contactSelector.Value, null); string[] newItems = newValues.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { ContactGroupMemberInfo cgmi; int itemId; // Get all selected items foreach (string item in newItems) { // Check if relation already exists itemId = ValidationHelper.GetInteger(item, 0); cgmi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, itemId, ContactGroupMemberTypeEnum.Contact); if (cgmi == null) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(cgi.ContactGroupID, itemId, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } else if (!cgmi.ContactGroupMemberFromManual) { cgmi.ContactGroupMemberFromManual = true; ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(cgmi); } } gridElem.ReloadData(); pnlUpdate.Update(); contactSelector.Value = null; } } // No permissions else { if (siteID > 0) { CMSPage.RedirectToCMSDeskAccessDenied("CMS.ContactManagement", "ModifyContactGroups"); } else { CMSPage.RedirectToCMSDeskAccessDenied("CMS.ContactManagement", "ModifyGlobalContactGroups"); } } }
private void RemoveContacts(What what, string where) { ContactGroupMemberInfoProvider.DeleteContactGroupMembers(where, cgi.ContactGroupID, false, false); switch (what) { case What.All: ShowConfirmation(GetString("om.contact.massaction.removedall")); break; case What.Selected: ShowConfirmation(GetString("om.contact.massaction.removed")); break; } }
/// <summary> /// Initializes panel with basic info. /// </summary> /// <param name="cgi">Contact group info object</param> /// <param name="forceReload">If TRUE number of group members is reloaded</param> private void InitInfoPanel(ContactGroupInfo cgi, bool forceReload) { if (cgi != null && task != null) { pnlInfo.GroupingText = GetString("om.contactgroup.info"); pnlInfo.Attributes.Add("style", "margin:0 30px;"); // Last evaluation time if (task.TaskLastRunTime != DateTimeHelper.ZERO_TIME) { lblLastEvalValue.Text = task.TaskLastRunTime.ToString(); } else { lblLastEvalValue.Text = GetString("general.na"); } // Display contact group status... switch (cgi.ContactGroupStatus) { case ContactGroupStatusEnum.Rebuilding: // Status and progress if the status is 'Rebuilding' ltrProgress.Text = String.Empty; string buildStr = GetString("om.contactgroup.rebuilding"); ltrProgress.Text = "<img style=\"width:12px;height:12px;\" src=\"" + UIHelper.GetImageUrl(this.Page, "Design/Preloaders/preload16.gif") + "\" alt=\"" + buildStr + "\" tooltip=\"" + buildStr + "\" />"; lblStatusValue.Text = "<span class=\"StatusDisabled\">" + buildStr + "</span>"; break; case ContactGroupStatusEnum.Ready: // 'Ready' status lblStatusValue.Text = "<span class=\"StatusEnabled\">" + GetString("om.contactgroup.ready") + "</span>"; break; case ContactGroupStatusEnum.ConditionChanged: // 'Condition changed' status lblStatusValue.Text = "<span class=\"StatusDisabled\">" + GetString("om.contactgroup.rebuildrequired") + "</span>"; break; } // Display current number of contacts in the group if (!RequestHelper.IsPostBack() || (cgi.ContactGroupStatus == ContactGroupStatusEnum.Rebuilding) || (DateTime.Now.Subtract(cgi.ContactGroupLastModified).TotalSeconds < 5) || forceReload) { lblNumberOfItemsValue.Text = ContactGroupMemberInfoProvider.GetNumberOfContactsInGroup(cgi.ContactGroupID, true).ToString(); } } }
/// <summary> /// Initializes panel with basic info. /// </summary> /// <param name="cgi">Contact group info object</param> /// <param name="forceReload">If TRUE number of group members is reloaded</param> private void InitInfoPanel(ContactGroupInfo cgi, bool forceReload) { if (cgi != null && task != null) { // Last evaluation time if (task.TaskLastRunTime != DateTimeHelper.ZERO_TIME) { lblLastEvalValue.Text = task.TaskLastRunTime.ToString(); } else { lblLastEvalValue.Text = GetString("general.na"); } // Display contact group status... switch (cgi.ContactGroupStatus) { case ContactGroupStatusEnum.Rebuilding: // Status and progress if the status is 'Rebuilding' string buildStr = GetString("om.contactgroup.rebuilding"); string statusText = "<span class=\"StatusDisabled form-control-text\">" + buildStr + "</span>"; ltrProgress.Text = ScriptHelper.GetLoaderInlineHtml(Page, statusText); lblStatusValue.Visible = false; break; case ContactGroupStatusEnum.Ready: // 'Ready' status lblStatusValue.Text = "<span class=\"StatusEnabled\">" + GetString("om.contactgroup.ready") + "</span>"; break; case ContactGroupStatusEnum.ConditionChanged: // 'Condition changed' status lblStatusValue.Text = "<span class=\"StatusDisabled\">" + GetString("om.contactgroup.rebuildrequired") + "</span>"; break; } // Display current number of contacts in the group if (!RequestHelper.IsPostBack() || (cgi.ContactGroupStatus == ContactGroupStatusEnum.Rebuilding) || (DateTime.Now.Subtract(cgi.ContactGroupLastModified).TotalSeconds < 5) || forceReload) { lblNumberOfItemsValue.Text = ContactGroupMemberInfoProvider.GetNumberOfContactsInGroup(cgi.ContactGroupID, true).ToString(); } } }
/// <summary> /// Attempt to remove user from group event handler. /// </summary> private void cContactGroups_OnRemoveFromGroup(object sender, EventArgs e) { int contactGroupID = ValidationHelper.GetInteger(sender, 0); if (contactGroupID != 0) { ContactGroupInfo removedGroup = ContactGroupInfoProvider.GetContactGroupInfo(contactGroupID); if (UserCanManageGroup(removedGroup) || UserCanManageContact(editedContact)) { // Get the relationship object ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(contactGroupID, editedContact.ContactID, ContactGroupMemberTypeEnum.Contact); if (mi != null) { ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi); } } } }
protected void Page_PreRender(object sender, EventArgs e) { // Check that the control is included in CMSPage (otherwise an exception is thrown on the Design tab) var page = Page as CMSPage; if (page == null) { return; } if (ContactGroup == null) { return; } // Disable refresh when status is ready as performance optimization timRefresh.Enabled = ContactGroup.ContactGroupStatus == ContactGroupStatusEnum.Rebuilding; if (ContactGroup.ContactGroupStatus == ContactGroupStatusEnum.Rebuilding) { lblRatio.Visible = false; lblCount.Visible = false; return; } int numberOfContacts = ContactGroupMemberInfoProvider.GetNumberOfContactsInGroup(ContactGroup.ContactGroupID); // Display number of contacts lblCount.InnerText = String.Format(GetString("om.contactgroup.numberofcontacts"), numberOfContacts); // Display ratio only for site group, since for global it would be difficult to compute if (!ContactGroup.IsGlobal) { // Display ratio of the number of contacts int totalContactCount = ContactInfoProvider.GetContacts() .OnSite(SiteContext.CurrentSiteID) .NotMerged() .Count; double ratio = (totalContactCount == 0) ? 0 : (double)numberOfContacts / totalContactCount * 100; lblRatio.InnerText = String.Format(GetString("om.contactgroup.numberofcontacts.ratio"), ratio); } }
/// <summary> /// Unigrid button clicked. /// </summary> protected void gridElem_OnAction(string actionName, object actionArgument) { // Perform 'remove' action if (actionName == "remove") { // Delete the object int contactId = ValidationHelper.GetInteger(actionArgument, 0); ContactInfo contact = ContactInfoProvider.GetContactInfo(contactId); if (contact != null) { // User has no permission to modify site contacts if (((contact.ContactSiteID > 0) && !modifySiteContacts) || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false)) { CMSPage.RedirectToCMSDeskAccessDenied("CMS.ContactManagement", "ModifyContacts"); } // User has no permission to modify global contacts else if ((contact.ContactSiteID == 0) && !modifyGlobalContacts || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false)) { CMSPage.RedirectToCMSDeskAccessDenied("CMS.ContactManagement", "ModifyGlobalContacts"); } // User has permission else { // Get the relationship object ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, contactId, ContactGroupMemberTypeEnum.Contact); if (mi != null) { ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi); } } } // Check modify permission if ((siteID > 0) && !(CheckPermissions("cms.contactmanagement", "ModifyContactGroups"))) { return; } else if ((siteID == 0) && !(CheckPermissions("cms.contactmanagement", "ModifyGlobalContactGroups"))) { return; } } }
/// <summary> /// Items changed event handler. /// </summary> protected void UniSelector_OnItemsSelected(object sender, EventArgs e) { // Check modify permission if (modifyCombined) { // Get new items from selector string newValues = ValidationHelper.GetString(accountSelector.Value, null); string[] newItems = newValues.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { int itemID; // Get all selected items foreach (string item in newItems) { // Check if relation already exists itemID = ValidationHelper.GetInteger(item, 0); if (ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, itemID, ContactGroupMemberTypeEnum.Account) == null) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(cgi.ContactGroupID, itemID, ContactGroupMemberTypeEnum.Account, MemberAddedHowEnum.Manual); } } gridElem.ReloadData(); pnlUpdate.Update(); accountSelector.Value = null; } } else { if (siteID > 0) { CMSPage.RedirectToCMSDeskAccessDenied(ModuleEntry.CONTACTMANAGEMENT, "ModifyContactGroups"); } else { CMSPage.RedirectToCMSDeskAccessDenied(ModuleEntry.CONTACTMANAGEMENT, "ModifyGlobalContactGroups"); } } }
/// <summary> /// Unigrid button clicked. /// </summary> protected void gridElem_OnAction(string actionName, object actionArgument) { // Perform 'remove' action if (actionName == "remove") { // Delete the object int accountId = ValidationHelper.GetInteger(actionArgument, 0); AccountInfo account = AccountInfoProvider.GetAccountInfo(accountId); if (account != null) { CheckModifyPermissions(); // Get the relationship object ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, accountId, ContactGroupMemberTypeEnum.Account); if (mi != null) { ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi); } } } }
private void StartNewProcess(What what, string where) { try { string error = String.Empty; int processId = ValidationHelper.GetInteger(hdnIdentifier.Value, 0); switch (what) { case What.All: // Get selected IDs based on where condition var contactIdsQuery = ContactGroupMemberInfoProvider.GetRelationships().Where(where).Column("ContactGroupMemberRelatedID"); var contactsQuery = ContactInfoProvider.GetContacts().WhereIn("ContactId", contactIdsQuery); error = ExecuteProcess(processId, contactsQuery); break; case What.Selected: var contactIds = gridElem.SelectedItems; var query = ContactInfoProvider.GetContacts().WhereIn("ContactId", contactIds); error = ExecuteProcess(processId, query); break; } if (String.IsNullOrEmpty(error)) { string confirmation = GetString(what == What.All ? "ma.process.started" : "ma.process.startedselected"); ShowConfirmation(confirmation); } else { ShowError(GetString("ma.process.error"), error, null); } } catch (Exception ex) { LogAndShowError("Automation", "STARTPROCESS", ex); } }
/// <summary> /// Items changed event handler. /// </summary> protected void UniSelector_OnItemsSelected(object sender, EventArgs e) { CheckModifyPermissions(); // Get new items from selector string newValues = ValidationHelper.GetString(contactSelector.Value, null); string[] newItems = newValues.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); // Get all selected items foreach (string item in newItems) { // Check if relation already exists int itemId = ValidationHelper.GetInteger(item, 0); ContactGroupMemberInfo cgmi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, itemId, ContactGroupMemberTypeEnum.Contact); if (cgmi == null) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(cgi.ContactGroupID, itemId, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } else if (!cgmi.ContactGroupMemberFromManual) { cgmi.ContactGroupMemberFromManual = true; ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(cgmi); } } gridElem.ReloadData(); pnlUpdate.Update(); contactSelector.Value = null; }
/// <summary> /// Loads contact groups of merged contacts into checkboxlist. /// </summary> private void LoadContactGroups() { if (!RequestHelper.IsPostBack()) { StringBuilder idList = new StringBuilder("("); foreach (DataRow dr in mMergedContacts.Tables[0].Rows) { idList.Append(dr["ContactID"] + ","); } // Remove last comma idList.Remove(idList.Length - 1, 1); idList.Append(")"); // Remove site contact groups for global contact string addWhere = null; if (mParentContact.ContactSiteID == 0) { addWhere = " AND ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID IS NULL)"; } string where = " ContactGroupMemberType = 0 AND ContactGroupMemberRelatedID IN " + idList + " AND ContactGroupMemberContactGroupID NOT IN (SELECT ContactGroupMemberContactGroupID FROM OM_ContactGroupMember WHERE ContactGroupMemberRelatedID = " + mParentContact.ContactID + " AND ContactGroupMemberType = 0)" + addWhere; // Show only manually added contact groups where = SqlHelper.AddWhereCondition(where, "ContactGroupMemberFromManual = 1"); // Limit selection of contact groups according to current user's permissions if (!MembershipContext.AuthenticatedUser.CheckPrivilegeLevel(UserPrivilegeLevelEnum.GlobalAdmin)) { bool readModifySite = ContactGroupHelper.AuthorizedReadContactGroup(mParentContact.ContactSiteID, false) && ContactGroupHelper.AuthorizedModifyContactGroup(mParentContact.ContactSiteID, false); bool readModifyGlobal = ContactGroupHelper.AuthorizedReadContactGroup(UniSelector.US_GLOBAL_RECORD, false) && ContactGroupHelper.AuthorizedModifyContactGroup(UniSelector.US_GLOBAL_RECORD, false); if (!readModifySite && !readModifyGlobal) { tabContactGroups.Visible = false; tabContactGroups.HeaderText = null; } else if (readModifySite && !readModifyGlobal) { where = SqlHelper.AddWhereCondition(where, " ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID = " + SiteContext.CurrentSiteID + ")"); } else if (!readModifySite && readModifyGlobal) { where = SqlHelper.AddWhereCondition(where, " ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID IS NULL)"); } else { where = SqlHelper.AddWhereCondition(where, " ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID IS NULL OR ContactGroupSiteID = " + SiteContext.CurrentSiteID + ")"); } } // Get contact group relations DataSet result = ContactGroupMemberInfoProvider.GetRelationships().Where(where).Column("ContactGroupMemberContactGroupID").Distinct(); if (!DataHelper.DataSourceIsEmpty(result)) { ListItem contactGroup; ContactGroupInfo cg; foreach (DataRow dr in result.Tables[0].Rows) { contactGroup = new ListItem(); contactGroup.Value = ValidationHelper.GetString(dr["ContactGroupMemberContactGroupID"], "0"); contactGroup.Selected = true; cg = ContactGroupInfoProvider.GetContactGroupInfo(ValidationHelper.GetInteger(dr["ContactGroupMemberContactGroupID"], 0)); if (cg != null) { contactGroup.Text = HTMLHelper.HTMLEncode(ResHelper.LocalizeString(cg.ContactGroupDisplayName)); chkContactGroups.Items.Add(contactGroup); } } } else { tabContactGroups.Visible = false; tabContactGroups.HeaderText = null; } } }
/// <summary> /// Mass operation button "OK" click. /// </summary> protected void btnOk_Click(object sender, EventArgs e) { string resultMessage = string.Empty; // Get where condition depending on mass action selection string where; List <string> contactIds = null; What what = (What)ValidationHelper.GetInteger(drpWhat.SelectedValue, 0); switch (what) { // All items case What.All: // Get all contacts with scores based on filter condition var contacts = GetContactsWithScore(); if (!DataHelper.DataSourceIsEmpty(contacts)) { // Get array list with IDs contactIds = DataHelper.GetUniqueValues(contacts.Tables[0], "ContactID", true); } break; // Selected items case What.Selected: // Get selected IDs from unigrid contactIds = gridElem.SelectedItems; break; } // Prepare where condition if ((contactIds != null) && (contactIds.Count > 0)) { where = SqlHelper.GetWhereCondition <int>("ContactID", contactIds, false); } else { where = "0=1"; } Action action = (Action)ValidationHelper.GetInteger(drpAction.SelectedItem.Value, 0); switch (action) { // Action 'Change status' case Action.ChangeStatus: // Get selected status ID from hidden field int statusId = ValidationHelper.GetInteger(hdnIdentifier.Value, -1); // If status ID is 0, the status will be removed if (statusId >= 0) { ContactInfoProvider.UpdateContactStatus(statusId, where); resultMessage = GetString("om.contact.massaction.statuschanged"); } break; // Action 'Add to contact group' case Action.AddToGroup: // Get contact group ID from hidden field int groupId = ValidationHelper.GetInteger(hdnIdentifier.Value, 0); if ((groupId > 0) && (contactIds != null)) { // Add each selected contact to the contact group, skip contacts that are already members of the group foreach (string item in contactIds) { int contactId = ValidationHelper.GetInteger(item, 0); if (contactId > 0) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(groupId, contactId, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } } // Get contact group to show result message with its display name ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo(groupId); if (group != null) { resultMessage = String.Format(GetString("om.contact.massaction.addedtogroup"), group.ContactGroupDisplayName); } } break; default: return; } if (!string.IsNullOrEmpty(resultMessage)) { lblInfo.Text = resultMessage; lblInfo.Visible = true; } // Reload unigrid gridElem.ClearSelectedItems(); gridElem.ReloadData(); pnlUpdate.Update(); }
/// <summary> /// Loads contact groups of merged contacts into checkboxlist. /// </summary> private void LoadContactGroups() { if (!RequestHelper.IsPostBack()) { StringBuilder idList = new StringBuilder("("); foreach (DataRow dr in mergedAccounts.Tables[0].Rows) { idList.Append(dr["AccountID"] + ","); } // Remove last comma idList.Remove(idList.Length - 1, 1); idList.Append(")"); // Remove site contact groups string addWhere = null; if (parentAccount.AccountSiteID == 0) { addWhere = " AND ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID IS NULL)"; } string where = "ContactGroupMemberType = 1 AND ContactGroupMemberRelatedID IN " + idList.ToString() + " AND ContactGroupMemberContactGroupID NOT IN (SELECT ContactGroupMemberContactGroupID FROM OM_ContactGroupMember WHERE ContactGroupMemberRelatedID = " + parentAccount.AccountID + " AND ContactGroupMemberType = 1)" + addWhere; // Limit selection of contact groups according to current user's persmissions if (!CMSContext.CurrentUser.UserSiteManagerAdmin) { bool readModifySite = ContactGroupHelper.AuthorizedReadContactGroup(parentAccount.AccountSiteID, false) && ContactGroupHelper.AuthorizedModifyContactGroup(parentAccount.AccountSiteID, false); bool readGlobal = ContactGroupHelper.AuthorizedReadContactGroup(UniSelector.US_GLOBAL_RECORD, false) && ContactGroupHelper.AuthorizedModifyContactGroup(UniSelector.US_GLOBAL_RECORD, false); if (!readModifySite && !readGlobal) { tabContactGroups.Visible = false; tabContactGroups.HeaderText = null; } else if (readModifySite && !readGlobal) { where = SqlHelperClass.AddWhereCondition(where, " ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID = " + CMSContext.CurrentSiteID + ")"); } else if (!readModifySite && readGlobal) { where = SqlHelperClass.AddWhereCondition(where, " ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID IS NULL)"); } else { where = SqlHelperClass.AddWhereCondition(where, " ContactGroupMemberContactGroupID IN (SELECT ContactGroupID FROM OM_ContactGroup WHERE ContactGroupSiteID IS NULL OR ContactGroupSiteID = " + CMSContext.CurrentSiteID + ")"); } } // Get contact group relations DataSet result = ContactGroupMemberInfoProvider.GetRelationships(where, null, -1, "DISTINCT ContactGroupMemberContactGroupID"); if (!DataHelper.DataSourceIsEmpty(result)) { ListItem contactGroup; ContactGroupInfo cg; foreach (DataRow dr in result.Tables[0].Rows) { contactGroup = new ListItem(); contactGroup.Value = ValidationHelper.GetString(dr["ContactGroupMemberContactGroupID"], "0"); contactGroup.Selected = true; // Fill in checkbox list cg = ContactGroupInfoProvider.GetContactGroupInfo(ValidationHelper.GetInteger(dr["ContactGroupMemberContactGroupID"], 0)); if (cg != null) { contactGroup.Text = HTMLHelper.HTMLEncode(cg.ContactGroupDisplayName); chkContactGroups.Items.Add(contactGroup); } } } else { tabContactGroups.Visible = false; tabContactGroups.HeaderText = null; } } }
/// <summary> /// Mass operation button "OK" click. /// </summary> protected void btnOk_Click(object sender, EventArgs e) { // Get where condition depending on mass action selection string where = null; What what = (What)ValidationHelper.GetInteger(drpWhat.SelectedValue, 0); switch (what) { // All items case What.All: where = SqlHelper.AddWhereCondition(gridElem.WhereCondition, gridElem.WhereClause); break; // Selected items case What.Selected: where = SqlHelper.GetWhereCondition <int>("AccountID", gridElem.SelectedItems, false); break; } Action action = (Action)ValidationHelper.GetInteger(drpAction.SelectedItem.Value, 0); switch (action) { // Action 'Change status' case Action.ChangeStatus: { // Get selected status ID from hidden field int statusId = ValidationHelper.GetInteger(hdnIdentifier.Value, -1); // If status ID is 0, the status will be removed if (statusId >= 0) { AccountInfoProvider.UpdateAccountStatus(statusId, where); ShowConfirmation(GetString("om.account.massaction.statuschanged")); } } break; // Action 'Add to contact group' case Action.AddToGroup: { // Get contact group ID from hidden field int groupId = ValidationHelper.GetInteger(hdnIdentifier.Value, 0); if (groupId > 0) { IEnumerable <string> accountIds = null; switch (what) { // All items case What.All: // Get selected IDs based on where condition DataSet accounts = AccountInfoProvider.GetAccounts().Where(where).Column("AccountID"); if (!DataHelper.DataSourceIsEmpty(accounts)) { // Get array list with IDs accountIds = DataHelper.GetUniqueValues(accounts.Tables[0], "AccountID", true); } break; // Selected items case What.Selected: // Get selected IDs from UniGrid accountIds = gridElem.SelectedItems; break; } if (accountIds != null) { // Add each selected account to the contact group, skip accounts that are already members of the group foreach (string item in accountIds) { int accountId = ValidationHelper.GetInteger(item, 0); if ((accountId > 0) && (ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(groupId, accountId, ContactGroupMemberTypeEnum.Account) == null)) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(groupId, accountId, ContactGroupMemberTypeEnum.Account, MemberAddedHowEnum.Account); } } // Get contact group to show result message with its display name ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo(groupId); if (group != null) { ShowConfirmation(String.Format(GetString("om.account.massaction.addedtogroup"), ResHelper.LocalizeString(group.ContactGroupDisplayName))); } } } } break; // Merge click case Action.Merge: DataSet selectedAccounts = AccountHelper.GetAccounListInfos(null, where, null, -1, null); if (!DataHelper.DataSourceIsEmpty(selectedAccounts)) { // Get selected account ID from hidden field int accountID = ValidationHelper.GetInteger(hdnIdentifier.Value, -1); // If account ID is 0 then new contact must be created if (accountID == 0) { int siteID; if (filter.DisplaySiteSelector || filter.DisplayGlobalOrSiteSelector) { siteID = filter.SelectedSiteID; } else { siteID = SiteID; } SetDialogParameters(selectedAccounts, AccountHelper.GetNewAccount(AccountHelper.MERGED, siteID)); } // Selected contact to be merged into else if (accountID > 0) { SetDialogParameters(selectedAccounts, AccountInfoProvider.GetAccountInfo(accountID)); } OpenWindow(); } break; default: return; } // Reload UniGrid gridElem.ResetSelection(); gridElem.ReloadData(); pnlUpdate.Update(); }
/// <summary> /// Mass operation button "OK" click. /// </summary> protected void btnOk_Click(object sender, EventArgs e) { // Get where condition depending on mass action selection string where = null; What what = (What)ValidationHelper.GetInteger(drpWhat.SelectedValue, 0); switch (what) { // All items case What.All: where = SqlHelper.AddWhereCondition(gridElem.WhereCondition, gridElem.WhereClause); break; // Selected items case What.Selected: where = SqlHelper.GetWhereCondition <int>("ContactID", gridElem.SelectedItems, false); break; } Action action = (Action)ValidationHelper.GetInteger(drpAction.SelectedItem.Value, 0); switch (action) { // Action 'Change status' case Action.ChangeStatus: // Get selected status ID from hidden field int statusId = ValidationHelper.GetInteger(hdnIdentifier.Value, -1); // If status ID is 0, the status will be removed if (statusId >= 0) { ContactInfoProvider.UpdateContactStatus(statusId, where); ShowConfirmation(GetString("om.contact.massaction.statuschanged")); } break; // Action 'Add to contact group' case Action.AddToGroup: // Get contact group ID from hidden field int groupId = ValidationHelper.GetInteger(hdnIdentifier.Value, 0); if (groupId > 0) { var contactGroup = ContactGroupInfoProvider.GetContactGroupInfo(groupId); if (contactGroup == null) { RedirectToAccessDenied(GetString("general.invalidparameters")); return; } if (contactGroup.ContactGroupSiteID != CurrentSite.SiteID) { RedirectToAccessDenied(GetString("general.invalidparameters")); return; } List <string> contactIds = null; switch (what) { // All items case What.All: // Get selected IDs based on where condition DataSet contacts = ContactInfoProvider.GetContacts().Where(where).Column("ContactID"); if (!DataHelper.DataSourceIsEmpty(contacts)) { // Get array list with IDs contactIds = DataHelper.GetUniqueValues(contacts.Tables[0], "ContactID", true); } break; // Selected items case What.Selected: // Get selected IDs from unigrid contactIds = gridElem.SelectedItems; break; } if (contactIds != null) { // Add each selected contact to the contact group, skip contacts that are already members of the group foreach (string item in contactIds) { int contactId = item.ToInteger(0); if (contactId > 0) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(groupId, contactId, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } } // Show result message with contact group's display name ShowConfirmation(String.Format(GetString("om.contact.massaction.addedtogroup"), ResHelper.LocalizeString(contactGroup.ContactGroupDisplayName))); } } break; // Merge click case Action.Merge: DataSet selectedContacts = ContactHelper.GetContactListInfos(null, where, null, -1, null); if (!DataHelper.DataSourceIsEmpty(selectedContacts)) { // Get selected contact ID from hidden field int contactID = ValidationHelper.GetInteger(hdnIdentifier.Value, -1); // If contact ID is 0 then new contact must be created if (contactID == 0) { int siteID; if (filter.DisplaySiteSelector || filter.DisplayGlobalOrSiteSelector) { siteID = filter.SelectedSiteID; } else { siteID = SiteID; } SetDialogParameters(selectedContacts, ContactHelper.GetNewContact(ContactHelper.MERGED, true, siteID)); } // Selected contact to be merged into else if (contactID > 0) { SetDialogParameters(selectedContacts, ContactInfoProvider.GetContactInfo(contactID)); } OpenWindow(); } break; default: return; } // Reload unigrid gridElem.ClearSelectedItems(); gridElem.ReloadData(); pnlUpdate.Update(); }
private void StartNewProcess(What what, string where) { try { AutomationManager manager = AutomationManager.GetInstance(CurrentUser); List <string> contactIds = null; switch (what) { case What.All: // Get selected IDs based on where condition DataSet contacts = ContactGroupMemberInfoProvider.GetRelationships().Where(where).Column("ContactGroupMemberRelatedID"); if (!DataHelper.DataSourceIsEmpty(contacts)) { contactIds = DataHelper.GetUniqueValues(contacts.Tables[0], "ContactGroupMemberRelatedID", true); } break; case What.Selected: contactIds = gridElem.SelectedItems; break; } if (contactIds != null) { string error = String.Empty; using (CMSActionContext context = new CMSActionContext()) { context.AllowAsyncActions = false; int processId = ValidationHelper.GetInteger(hdnIdentifier.Value, 0); foreach (string contactId in contactIds) { var contact = ContactInfoProvider.GetContactInfo(ValidationHelper.GetInteger(contactId, 0)); try { manager.StartProcess(contact, processId); } catch (ProcessRecurrenceException ex) { error += "<div>" + ex.Message + "</div>"; } } } if (String.IsNullOrEmpty(error)) { string confirmation = GetString(what == What.All ? "ma.process.started" : "ma.process.startedselected"); ShowConfirmation(confirmation); } else { ShowError(GetString("ma.process.error"), error, null); } } } catch (Exception ex) { LogAndShowError("Automation", "STARTPROCESS", ex); } }
/// <summary> /// Mass operation button "OK" click. /// </summary> protected void btnOk_Click(object sender, EventArgs e) { string resultMessage = string.Empty; // Get where condition depending on mass action selection string where = null; What what = (What)ValidationHelper.GetInteger(drpWhat.SelectedValue, 0); switch (what) { // All items case What.All: where = gridElem.WhereCondition; break; // Selected items case What.Selected: where = SqlHelperClass.GetWhereCondition <int>("ContactID", (string[])gridElem.SelectedItems.ToArray(typeof(string)), false); break; } Action action = (Action)ValidationHelper.GetInteger(drpAction.SelectedItem.Value, 0); switch (action) { // Action 'Change status' case Action.ChangeStatus: // Get selected status ID from hidden field int statusId = ValidationHelper.GetInteger(hdnIdentificator.Value, -1); // If status ID is 0, the status will be removed if (statusId >= 0) { ContactInfoProvider.UpdateContactStatus(statusId, where); resultMessage = GetString("om.contact.massaction.statuschanged"); } break; // Action 'Add to contact group' case Action.AddToGroup: // Get contact group ID from hidden field int groupId = ValidationHelper.GetInteger(hdnIdentificator.Value, 0); if (groupId > 0) { ArrayList contactIds = null; switch (what) { // All items case What.All: // Get selected IDs based on where condition DataSet contacts = ContactInfoProvider.GetContacts(where, null, 0, "ContactID"); if (!DataHelper.DataSourceIsEmpty(contacts)) { // Get array list with IDs contactIds = DataHelper.GetUniqueValues(contacts.Tables[0], "ContactID", true); } break; // Selected items case What.Selected: // Get selected IDs from unigrid contactIds = gridElem.SelectedItems; break; } if (contactIds != null) { int contactId = 0; // Add each selected contact to the contact group, skip contacts that are already members of the group foreach (string item in contactIds) { contactId = ValidationHelper.GetInteger(item, 0); if (contactId > 0) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(groupId, contactId, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } } // Get contact group to show result message with its display name ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo(groupId); if (group != null) { resultMessage = String.Format(GetString("om.contact.massaction.addedtogroup"), group.ContactGroupDisplayName); } } } break; // Merge click case Action.Merge: DataSet selectedContacts = ContactHelper.GetContactListInfos(null, where, null, -1, null); if (!DataHelper.DataSourceIsEmpty(selectedContacts)) { // Get selected contact ID from hidden field int contactID = ValidationHelper.GetInteger(hdnIdentificator.Value, -1); // If contact ID is 0 then new contact must be created if (contactID == 0) { int siteID; if (filter.DisplaySiteSelector || filter.DisplayGlobalOrSiteSelector) { siteID = filter.SelectedSiteID; } else { siteID = SiteID; } SetDialogParameters(selectedContacts, ContactHelper.GetNewContact(ContactHelper.MERGED, true, siteID)); } // Selected contact to be merged into else if (contactID > 0) { SetDialogParameters(selectedContacts, ContactInfoProvider.GetContactInfo(contactID)); } OpenWindow(); } break; default: return; } if (!string.IsNullOrEmpty(resultMessage)) { lblInfo.Text = resultMessage; lblInfo.Visible = true; } // Reload unigrid gridElem.ClearSelectedItems(); gridElem.ReloadData(); pnlUpdate.Update(); }
/// <summary> /// Mass operation button "OK" click. /// </summary> protected void btnOk_Click(object sender, EventArgs e) { // Get where condition depending on mass action selection string where = null; What what = (What)ValidationHelper.GetInteger(drpWhat.SelectedValue, 0); switch (what) { // All items case What.All: where = SqlHelper.AddWhereCondition(gridElem.WhereCondition, gridElem.WhereClause); break; // Selected items case What.Selected: where = SqlHelper.GetWhereCondition <int>("ContactID", gridElem.SelectedItems, false); break; } Action action = (Action)ValidationHelper.GetInteger(drpAction.SelectedItem.Value, 0); switch (action) { // Action 'Change status' case Action.ChangeStatus: // Get selected status ID from hidden field int statusId = ValidationHelper.GetInteger(hdnIdentifier.Value, -1); // If status ID is 0, the status will be removed if (statusId >= 0) { ContactInfoProvider.UpdateContactStatus(statusId, where); ShowConfirmation(GetString("om.contact.massaction.statuschanged")); } break; // Action 'Add to contact group' case Action.AddToGroup: // Get contact group ID from hidden field int groupId = ValidationHelper.GetInteger(hdnIdentifier.Value, 0); if (groupId > 0) { var contactGroup = ContactGroupInfoProvider.GetContactGroupInfo(groupId); if (contactGroup == null) { RedirectToAccessDenied(GetString("general.invalidparameters")); return; } IEnumerable <string> contactIds = null; switch (what) { // All items case What.All: // Get selected IDs based on where condition DataSet contacts = ContactInfoProvider.GetContacts().Where(where).Column("ContactID"); if (!DataHelper.DataSourceIsEmpty(contacts)) { // Get array list with IDs contactIds = DataHelper.GetUniqueValues(contacts.Tables[0], "ContactID", true); } break; // Selected items case What.Selected: // Get selected IDs from unigrid contactIds = gridElem.SelectedItems; break; } if (contactIds != null) { // Add each selected contact to the contact group, skip contacts that are already members of the group foreach (string item in contactIds) { int contactId = item.ToInteger(0); if (contactId > 0) { ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(groupId, contactId, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } } // Show result message with contact group's display name ShowConfirmation(string.Format(GetString("om.contact.massaction.addedtogroup"), HTMLHelper.HTMLEncode(ResHelper.LocalizeString(contactGroup.ContactGroupDisplayName)))); } } break; default: return; } // Reload unigrid gridElem.ResetSelection(); gridElem.ReloadData(); pnlUpdate.Update(); }