/// <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); foreach (string item in newItems) { // Check if relation already exists int itemId = ValidationHelper.GetInteger(item, 0); ContactGroupMemberInfo cgmi = ContactGroupMemberInfo.Provider.Get(cgi.ContactGroupID, itemId, ContactGroupMemberTypeEnum.Contact); if (cgmi == null) { ContactGroupMemberInfo.Provider.Add(cgi.ContactGroupID, itemId, ContactGroupMemberTypeEnum.Contact, MemberAddedHowEnum.Manual); } else if (!cgmi.ContactGroupMemberFromManual) { cgmi.ContactGroupMemberFromManual = true; ContactGroupMemberInfo.Provider.Set(cgmi); } } gridElem.ReloadData(); pnlUpdate.Update(); contactSelector.Value = null; }
/// <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) { // User has no permission to modify site accounts if (((account.AccountSiteID > 0) && !modifySiteAccounts) || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false)) { CMSPage.RedirectToCMSDeskAccessDenied(ModuleEntry.CONTACTMANAGEMENT, "ModifyAccounts"); } // User has no permission to modify global accounts else if ((account.AccountSiteID == 0) && !modifyGlobalAccounts || !ContactGroupHelper.AuthorizedModifyContactGroup(cgi.ContactGroupSiteID, false)) { CMSPage.RedirectToCMSDeskAccessDenied(ModuleEntry.CONTACTMANAGEMENT, "ModifyGlobalAccounts"); } // User has permission else { // Get the relationship object ContactGroupMemberInfo mi = ContactGroupMemberInfoProvider.GetContactGroupMemberInfoByData(cgi.ContactGroupID, accountId, ContactGroupMemberTypeEnum.Account); if (mi != null) { ContactGroupMemberInfoProvider.DeleteContactGroupMemberInfo(mi); } } } } }
/// <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); } } } }
/// <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> /// 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); } } } }
/// <summary> /// Adds contact to group. Called when the "Add contact to group" button is pressed. /// Exepects the CreateContact and CreateContactGroup methods to be run first. /// </summary> private bool AddContactToGroup() { // Get dataset of contacts string where = "ContactLastName LIKE N'My New Contact%'"; InfoDataSet<ContactInfo> contacts = ContactInfoProvider.GetContacts(where, null, 1, null); // Get the contact group ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo("MyNewGroup", CMSContext.CurrentSiteName); if (!DataHelper.DataSourceIsEmpty(contacts) && (group != null)) { // Get the contact from dataset ContactInfo contact = contacts.First<ContactInfo>(); // Create the contact - contactgroup relationship ContactGroupMemberInfo newContactGroupMember = new ContactGroupMemberInfo() { ContactGroupMemberContactGroupID = group.ContactGroupID, ContactGroupMemberType = ContactGroupMemberTypeEnum.Contact, ContactGroupMemberRelatedID = contact.ContactID, ContactGroupMemberFromManual = true }; // Save the contact group ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(newContactGroupMember); return true; } return false; }
/// <summary> /// Adds account to group. Called when the "Add account to group" button is pressed. /// Expects the CreateAccount and CreateGroup methods to be run first. /// </summary> private bool AddAccountToGroup() { // Get the accounts InfoDataSet<AccountInfo> accounts = AccountInfoProvider.GetAccounts("AccountName = 'My New Account'", null); // Get the contact group ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo("MyNewGroup", CMSContext.CurrentSiteName); if ((!DataHelper.DataSourceIsEmpty(accounts)) && (group != null)) { // Get account AccountInfo account = accounts.First<AccountInfo>(); // Create new account - contact group relationship ContactGroupMemberInfo newContactGroupMember = new ContactGroupMemberInfo() { ContactGroupMemberContactGroupID = group.ContactGroupID, ContactGroupMemberType = ContactGroupMemberTypeEnum.Account, ContactGroupMemberRelatedID = account.AccountID }; // Save the object ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(newContactGroupMember); return true; } return false; }
/// <summary> /// Adds account to group. Called when the "Add account to group" button is pressed. /// Expects the CreateAccount and CreateGroup methods to be run first. /// </summary> private bool AddAccountToGroup() { // Get the account AccountInfo account = AccountInfoProvider.GetAccountInfo("My New Account", CMSContext.CurrentSiteName); // Get the contact group ContactGroupInfo group = ContactGroupInfoProvider.GetContactGroupInfo("MyNewGroup", CMSContext.CurrentSiteName); if ((account != null) && (group != null)) { // Create new account - contact group relationship ContactGroupMemberInfo newContactGroupMember = new ContactGroupMemberInfo() { ContactGroupMemberContactGroupID = group.ContactGroupID, ContactGroupMemberType = ContactGroupMemberTypeEnum.Account, ContactGroupMemberRelatedID = account.AccountID }; // Save the object ContactGroupMemberInfoProvider.SetContactGroupMemberInfo(newContactGroupMember); return true; } return false; }