/// <summary> /// Loads account-contact role collisions. /// </summary> private void LoadContactCollisions() { StringBuilder resultQuery = new StringBuilder("ContactID IN (" + mParentContact.ContactID); foreach (DataRow dr in mMergedContacts.Tables[0].Rows) { resultQuery.Append("," + dr["ContactID"]); } resultQuery.Append(")"); // Get all account-contact relations DataSet relations = new ContactAccountListInfo().Generalized.GetData(null, resultQuery.ToString(), null, -1, "AccountID,AccountName,ContactRoleID", false); // Group by AccountID to get distinct results DataTable result = relations.Tables[0].DefaultView.ToTable(true, "AccountID"); int totalMerging = 0; // Display contact-account relations if (!DataHelper.DataSourceIsEmpty(result)) { // Display prefix Literal prepend = new Literal(); prepend.Text = "<div class=\"form-horizontal\">"; plcAccountContact.Controls.Add(prepend); // Display collisions foreach (DataRow dr in result.Rows) { totalMerging += DisplayRoleCollisions(ValidationHelper.GetInteger(dr[0], 0), relations); } // Display suffix if any relation found if (totalMerging > 0) { Literal append = new Literal(); append.Text = "</div>"; plcAccountContact.Controls.Add(append); headContactInfo.ResourceString = "om.contact.accountroles"; } else { tabContacts.HeaderText = null; tabContacts.Visible = false; plcAccountContact.Visible = false; } } // Hide content else { tabContacts.HeaderText = null; tabContacts.Visible = false; plcAccountContact.Visible = false; } }