コード例 #1
0
ファイル: Accounts.ascx.cs プロジェクト: itymofieiev/Kentico9
 /// <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");
             }
         }
     }
 }
コード例 #2
0
    /// <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;
    }
コード例 #3
0
    private void SetContactRoleToAccount(int roleId, int accountContactId)
    {
        var aci = AccountContactInfoProvider.GetAccountContactInfo(accountContactId);

        if (aci != null)
        {
            aci.ContactRoleID = roleId;
            AccountContactInfoProvider.SetAccountContactInfo(aci);
        }
    }
コード例 #4
0
    /// <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);
    }
コード例 #5
0
    /// <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);
    }
コード例 #6
0
    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";
        }
    }
コード例 #7
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"));
            }
        }
    }
コード例 #8
0
    /// <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();
        }
    }