/// <summary> /// Unigrid button clicked. /// </summary> protected void gridElem_OnAction(string actionName, object actionArgument) { if (actionName == "remove") { // User has permission modify if (mModifyAccountContact) { int relationId = ValidationHelper.GetInteger(actionArgument, 0); AccountContactInfo relation = AccountContactInfoProvider.GetAccountContactInfo(relationId); if (relation != null) { // We need to invalidate the contact as we might have modified some of its relationships and data in the cache might not be valid AccountContactInfoProvider.DeleteAccountContactInfo(relation); } } // User doesn't have sufficient permissions else { if (SiteID > 0) { CMSPage.RedirectToAccessDenied(ModuleName.CONTACTMANAGEMENT, "ModifyContacts"); } else { CMSPage.RedirectToAccessDenied(ModuleName.CONTACTMANAGEMENT, "ModifyGlobalContacts"); } } } }
/// <summary> /// Sets contact role ID to given role selector control based on contact selector value and edited account. /// </summary> private void SetContactRoleID(FormEngineUserControl contactSelector, FormEngineUserControl roleSelector) { int contactID = ValidationHelper.GetInteger(contactSelector.Value, 0); int accountID = ai.AccountID; var accountContactInfo = AccountContactInfoProvider.GetAccountContactInfo(accountID, contactID); roleSelector.Value = (accountContactInfo != null) ? accountContactInfo.ContactRoleID : UniSelector.US_NONE_RECORD; }
private void SetContactRoleToAccount(int roleId, int accountContactId) { var aci = AccountContactInfoProvider.GetAccountContactInfo(accountContactId); if (aci != null) { aci.ContactRoleID = roleId; AccountContactInfoProvider.SetAccountContactInfo(aci); } }
/// <summary> /// Sets primary and secondary contacts. /// </summary> private bool AssignContacts() { ContactInfo contact = null; AccountContactInfo accountContact = null; // Assign primary contact to account and/or assign role if (primaryContact.ContactID > 0) { contact = ContactInfoProvider.GetContactInfo(primaryContact.ContactID); if (contact != null) { // Check if contact <-> account relation is already created accountContact = AccountContactInfoProvider.GetAccountContactInfo(ai.AccountID, primaryContact.ContactID); // Update relation if (accountContact != null) { accountContact.ContactRoleID = contactRolePrimary.ContactRoleID; } AccountContactInfoProvider.SetAccountContactInfo(accountContact); } // Selected contact doesn't exist else { ShowError(GetString("om.contact.primarynotexists")); return(false); } } // Assign secondary contact to account and/or assign role if (secondaryContact.ContactID > 0) { contact = ContactInfoProvider.GetContactInfo(secondaryContact.ContactID); if (contact != null) { // Check if contact <-> account relation is already created accountContact = AccountContactInfoProvider.GetAccountContactInfo(ai.AccountID, secondaryContact.ContactID); // Update relation if (accountContact != null) { accountContact.ContactRoleID = contactRoleSecondary.ContactRoleID; } AccountContactInfoProvider.SetAccountContactInfo(accountContact); } else { ShowError(GetString("om.contact.secondarynotexists")); return(false); } } return(true); }
/// <summary> /// Returns true if contact belongs to specified account. /// </summary> /// <param name="contact">Contact info object</param> /// <param name="accountName">Account ID</param> public static bool BelongsToAccount(object contact, object accountID) { ContactInfo ci = contact as ContactInfo; if (ci == null) { return(false); } int accId = ValidationHelper.GetInteger(accountID, 0); if (accId > 0) { return(AccountContactInfoProvider.GetAccountContactInfo(accId, ci.ContactID) != null); } return(false); }
protected void Page_Load(object sender, EventArgs e) { if (!QueryHelper.ValidateHash("hash") || Parameters == null) { StopProcessing = true; return; } PageTitle.TitleText = GetString("om.contactrole.select"); Page.Title = PageTitle.TitleText; // Check if the dialog was opened from mass actions isMassAction = Parameters.ContainsKey("ismassaction"); if (isMassAction) { siteId = ValidationHelper.GetInteger(Parameters["siteid"], 0); } else { int accountContactId = ValidationHelper.GetInteger(Parameters["accountcontactid"], 0); aci = AccountContactInfoProvider.GetAccountContactInfo(accountContactId); if (aci != null) { AccountInfo ai = AccountInfoProvider.GetAccountInfo(aci.AccountID); if (ai != null) { siteId = ai.AccountSiteID; } } } // Show all global configuration to authorized users .. bool allowGlobal = ConfigurationHelper.AuthorizedReadConfiguration(UniSelector.US_GLOBAL_RECORD, false); // .. but just in SiteManager - fake it in CMSDesk so that even Global Admin sees user configuration // as Site Admins (depending on settings). bool isSiteManager = ValidationHelper.GetBoolean(Parameters["issitemanager"], false); allowGlobal &= (isSiteManager || SettingsKeyInfoProvider.GetBoolValue(SiteInfoProvider.GetSiteName(siteId) + ".cmscmglobalconfiguration")); bool allowSite; if (siteId > 0) { allowSite = ConfigurationHelper.AuthorizedReadConfiguration(siteId, false); } else { allowSite = ConfigurationHelper.AuthorizedReadConfiguration(SiteContext.CurrentSiteID, false); } // Check read permission if ((siteId > 0) && !allowSite && !allowGlobal) { RedirectToAccessDenied("cms.contactmanagement", "ReadConfiguration"); return; } else if ((siteId == 0) && !allowGlobal) { RedirectToAccessDenied("cms.contactmanagement", "ReadGlobalConfiguration"); return; } if (siteId > 0) { if (allowSite) { gridElem.WhereCondition = "ContactRoleSiteID = " + siteId; } // Check if global config is allowed for the site if (allowGlobal) { // Add contact roles from global configuration gridElem.WhereCondition = SqlHelper.AddWhereCondition(gridElem.WhereCondition, "ContactRoleSiteID IS NULL", "OR"); } } else if ((siteId == 0) && allowGlobal) { gridElem.WhereCondition = "ContactRoleSiteID IS NULL"; } gridElem.OnExternalDataBound += gridElem_OnExternalDataBound; gridElem.Pager.DefaultPageSize = 10; // Display 'Reset' button when 'none' role is allowed if (ValidationHelper.GetBoolean(Parameters["allownone"], false)) { btnReset.Visible = true; btnReset.Click += btn_Click; btnReset.CommandArgument = "0"; } }
/// <summary> /// Sets primary and secondary contacts. /// </summary> private void AssignContacts() { ContactInfo contact; AccountContactInfo accountContact; // Assign primary contact to account and/or assign role int contactID = ValidationHelper.GetInteger(EditForm.EditedObject.GetValue("accountprimarycontactid"), -1); int contactRoleID = ValidationHelper.GetInteger(EditForm.FieldControls["accountprimarycontactroleid"].Value, -1); if (contactID > 0) { contact = ContactInfoProvider.GetContactInfo(contactID); if (contact != null) { accountContact = AccountContactInfoProvider.GetAccountContactInfo(ai.AccountID, contactID); // Update relation if (accountContact != null) { accountContact.ContactRoleID = contactRoleID; AccountContactInfoProvider.SetAccountContactInfo(accountContact); } else { EditForm.EditedObject.SetValue("accountprimarycontactid", null); ((UniSelector)EditForm.FieldControls["accountprimarycontactid"]).Reload(true); } } // Selected contact doesn't exist else { ShowError(GetString("om.contact.primarynotexists")); return; } } // Assign secondary contact to account and/or assign role contactID = ValidationHelper.GetInteger(EditForm.EditedObject.GetValue("accountsecondarycontactid"), -1); contactRoleID = ValidationHelper.GetInteger(EditForm.FieldControls["accountsecondarycontactroleid"].Value, -1); // Assign secondary contact to account and/or assign role if (contactID > 0) { contact = ContactInfoProvider.GetContactInfo(contactID); if (contact != null) { accountContact = AccountContactInfoProvider.GetAccountContactInfo(ai.AccountID, contactID); // Update relation if (accountContact != null) { accountContact.ContactRoleID = contactRoleID; AccountContactInfoProvider.SetAccountContactInfo(accountContact); } else { EditForm.EditedObject.SetValue("accountsecondarycontactid", null); ((UniSelector)EditForm.FieldControls["accountsecondarycontactid"]).Reload(true); } } else { ShowError(GetString("om.contact.secondarynotexists")); } } }
/// <summary> /// Reloads control. /// </summary> public void Reload() { // Load controls with data if (ai != null) { SiteID = ai.AccountSiteID; // Load values from DB if (!RequestHelper.IsPostBack()) { txtName.Text = ai.AccountName; accountStatus.Value = ai.AccountStatusID; parentAccount.Value = ai.AccountSubsidiaryOfID; accountOwner.Value = ai.AccountOwnerUserID; txtAddress1.Text = ai.AccountAddress1; txtAddress2.Text = ai.AccountAddress2; txtCity.Text = ai.AccountCity; txtZip.Text = ai.AccountZIP; countrySelector.CountryID = ai.AccountCountryID; countrySelector.StateID = ai.AccountStateID; txtPhone.Text = ai.AccountPhone; txtFax.Text = ai.AccountFax; emailInput.Value = ai.AccountEmail; txtURL.Text = ai.AccountWebSite; htmlNotes.Value = ai.AccountNotes; primaryContact.Value = ai.AccountPrimaryContactID; secondaryContact.Value = ai.AccountSecondaryContactID; // Get primary contact role AccountContactInfo aci = null; if (ai.AccountPrimaryContactID > 0) { aci = AccountContactInfoProvider.GetAccountContactInfo(ai.AccountID, ai.AccountPrimaryContactID); if (aci != null) { contactRolePrimary.Value = aci.ContactRoleID; } } // Get secondary contact role if (ai.AccountSecondaryContactID > 0) { aci = AccountContactInfoProvider.GetAccountContactInfo(ai.AccountID, ai.AccountSecondaryContactID); if (aci != null) { contactRoleSecondary.Value = aci.ContactRoleID; } } } // Setup selectors parentAccount.WhereCondition = "(AccountID NOT IN (SELECT * FROM Func_OM_Account_GetSubsidiaries(" + ai.AccountID + ", 1)) AND AccountMergedWithAccountID IS NULL)"; primaryContact.WhereCondition = "(ContactID IN (SELECT ContactID FROM OM_AccountContact WHERE AccountID = " + ai.AccountID + "))"; secondaryContact.WhereCondition = "(ContactID IN (SELECT ContactID FROM OM_AccountContact WHERE AccountID = " + ai.AccountID + "))"; // Reload controls parentAccount.ReloadData(); primaryContact.ReloadData(); secondaryContact.ReloadData(); accountOwner.ReloadData(); contactRolePrimary.ReloadData(); contactRoleSecondary.ReloadData(); accountStatus.ReloadData(); } }