/// <summary> /// Adds the contact to account. /// </summary> /// <param name="sourceLead">The source lead.</param> private void AddContactToAccount(ILead sourceLead, string accountID) { if (accountID != null) { IList <IAccount> selectedAccount = EntityFactory.GetRepository <IAccount>().FindByProperty("Id", accountID); if (selectedAccount != null) { foreach (IAccount account in selectedAccount) { IContact newContact = EntityFactory.Create <IContact>(); sourceLead.ConvertLeadToContact(newContact, account, "Add Contact to this Account"); sourceLead.ConvertLeadAddressToContactAddress(newContact); sourceLead.ConvertLeadAddressToAccountAddress(account); sourceLead.MergeLeadWithAccount(account, "ACCOUNTWINS", newContact); account.Save(); newContact.Save(); Response.Redirect(string.Format("Contact.aspx?entityId={0}", (newContact.Id))); } } } }
protected void btnConvert_Click(object sender, EventArgs e) { IContact newContact = EntityFactory.Create <IContact>(); ILeadHistory newHistory = EntityFactory.Create <ILeadHistory>(); ILeadAddressHistory newAddressHistory = EntityFactory.Create <ILeadAddressHistory>(); newAddressHistory.LeadHistory = newHistory; newHistory.Addresses.Add(newAddressHistory); ILead curLead = BindingSource.Current as ILead; if (curLead == null) { return; } accountID = ((IAccount)dtsAccounts.Current).Id.ToString(); if (accountID != null) { var account = EntityFactory.GetById <IAccount>(accountID); if (account != null) { curLead.ConvertLeadToContact(newContact, account, GetLocalResourceObject("chkAddContacts.Text").ToString()); curLead.ConvertLeadAddressToContactAddress(newContact); curLead.ConvertLeadAddressToAccountAddress(account); curLead.MergeLeadWithAccount(account, GetLocalResourceObject("ExistingAccountwins.Text").ToString(), newContact); account.Save(); Response.Redirect(string.Format("Contact.aspx?entityId={0}", (newContact.Id))); } } }
/// <summary> /// Adds the contact to account. /// </summary> /// <param name="sourceLead">The source lead.</param> /// <param name="accountID">The account ID.</param> private void AddContactToAccount(ILead sourceLead, string accountID) { if (accountID != null) { var account = EntityFactory.GetById <IAccount>(accountID); if (account != null) { IContact newContact = EntityFactory.Create <IContact>(); sourceLead.ConvertLeadToContact(newContact, account, "Add Contact to this Account"); sourceLead.ConvertLeadAddressToContactAddress(newContact); sourceLead.ConvertLeadAddressToAccountAddress(account); sourceLead.MergeLeadWithAccount(account, "ACCOUNTWINS", newContact); account.Contacts.Add(newContact); account.Save(); Response.Redirect(String.Format("Contact.aspx?entityId={0}", (newContact.Id))); } } }
/// <summary> /// Converts the lead to contact. /// </summary> /// <param name="sourceLead">The source lead.</param> /// <param name="accountId">The account ID.</param> /// <param name="createOpportunity">if set to <c>true</c> [create opportunity].</param> /// <param name="mergeRule">The merge rule.</param> private void ConvertLeadToContact(ILead sourceLead, string accountId, bool createOpportunity, string mergeRule) { if (accountId != null) { IAccount account = EntityFactory.GetById<IAccount>(accountId); if (account != null) { var keyGen = new SalesLogixEntityKeyGenerator(); string key = keyGen.GenerateIds(typeof(IContact), 1).FirstOrDefault(); IContact contact = EntityFactory.Create<IContact>(); ((IAssignableId)contact).Id = key; string leadHistoryId = sourceLead.SaveLeadHistory(); sourceLead.ConvertLeadToContact(contact, account, "Add Contact to this Account"); if (mergeRule.ToUpper().Equals("LEADWINS")) { sourceLead.ConvertLeadAddressToContactAddress(contact); } else { contact.Address.Address1 = account.Address.Address1; contact.Address.Address2 = account.Address.Address2; contact.Address.Address3 = account.Address.Address3; contact.Address.Address4 = account.Address.Address4; contact.Address.City = account.Address.City; contact.Address.Country = account.Address.Country; contact.Address.County = account.Address.County; contact.Address.Description = account.Address.Description; contact.Address.PostalCode = account.Address.PostalCode; contact.Address.Salutation = account.Address.Salutation; contact.Address.State = account.Address.State; contact.Address.TimeZone = account.Address.TimeZone; contact.Address.Type = account.Address.Type; contact.Address.GlobalSyncId = account.Address.GlobalSyncId; contact.Address.AppId = account.Address.AppId; contact.Address.Tick = account.Address.Tick; } sourceLead.MergeLeadWithAccount(account, mergeRule, contact); CreateContactLeadSource(sourceLead, contact); account.Save(); contact.Save(); IOpportunity opportunity = CreateOpportunity(createOpportunity, contact, sourceLead); IList<IAttachment> attachment = EntityFactory.GetRepository<IAttachment>().FindByProperty("LeadId", sourceLead.Id. ToString()); foreach (IAttachment attach in attachment) sourceLead.AddAttachmentsContactID(contact, account, null, attach); sourceLead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); sourceLead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTarget = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", sourceLead.Id.ToString()); foreach (ICampaignTarget ct in campaignTarget) sourceLead.ChangeCampaignTargetEntityID(contact, ct); ILeadHistory leadHistory = EntityFactory.GetById<ILeadHistory>(leadHistoryId); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } sourceLead.Delete(); EntityContext.RemoveEntityHistory(typeof (ILead), sourceLead.Id); Response.Redirect( opportunity != null ? string.Format("Opportunity.aspx?entityid={0}", opportunity.Id) : string.Format("Contact.aspx?entityId={0}", contact.Id), false); } } }
/// <summary> /// Adds the contact to account. /// </summary> /// <param name="sourceLead">The source lead.</param> private void AddContactToAccount(ILead sourceLead, string accountID) { if (accountID != null) { IList<IAccount> selectedAccount = EntityFactory.GetRepository<IAccount>().FindByProperty("Id", accountID); if (selectedAccount != null) { foreach (IAccount account in selectedAccount) { IContact newContact = EntityFactory.Create<IContact>(); sourceLead.ConvertLeadToContact(newContact, account, "Add Contact to this Account"); sourceLead.ConvertLeadAddressToContactAddress(newContact); sourceLead.ConvertLeadAddressToAccountAddress(account); sourceLead.MergeLeadWithAccount(account, "ACCOUNTWINS", newContact); account.Save(); newContact.Save(); Response.Redirect(string.Format("Contact.aspx?entityId={0}", (newContact.Id))); } } } }
/// <summary> /// Converts the lead to contact. /// </summary> /// <param name="sourceLead">The source lead.</param> /// <param name="accountID">The account ID.</param> private void ConvertLeadToContact(ILead sourceLead, string accountID, bool createOpportinity, string mergeRule) { if (accountID != null) { IAccount account = EntityFactory.GetById<IAccount>(accountID); if (account != null) { IContact contact = EntityFactory.Create<IContact>(); IOpportunity opportunity = null; ILeadHistory leadHistory = null; string leadHistoryId = string.Empty; leadHistoryId = sourceLead.SaveLeadHistory(); sourceLead.ConvertLeadToContact(contact, account, "Add Contact to this Account"); if (mergeRule.ToUpper().Equals("LEADWINS")) { sourceLead.ConvertLeadAddressToContactAddress(contact); //sourceLead.ConvertLeadAddressToAccountAddress(account); } else { contact.Address.Address1 = account.Address.Address1; contact.Address.Address2 = account.Address.Address2; contact.Address.Address3 = account.Address.Address3; contact.Address.Address4 = account.Address.Address4; contact.Address.City = account.Address.City; contact.Address.Country = account.Address.Country; contact.Address.County = account.Address.County; contact.Address.Description = account.Address.Description; contact.Address.PostalCode = account.Address.PostalCode; contact.Address.Salutation = account.Address.Salutation; contact.Address.State = account.Address.State; contact.Address.TimeZone = account.Address.TimeZone; contact.Address.Type = account.Address.Type; } sourceLead.MergeLeadWithAccount(account, mergeRule, contact); account.Save(); contact.Save(); if (createOpportinity) { opportunity = EntityFactory.Create<IOpportunity>(); opportunity.Account = contact.Account; opportunity.Description = string.Format("Opportunity for {0}", sourceLead.LeadNameLastFirst); opportunity.Owner = contact.Account.Owner; opportunity.AccountManager = contact.Account.AccountManager; opportunity.Save(); } IList<IAttachment> attachment = EntityFactory.GetRepository<IAttachment>().FindByProperty("LeadId", sourceLead.Id.ToString()); foreach (IAttachment attach in attachment) sourceLead.AddAttachmentsContactID(contact, account, null, attach); sourceLead.AddHistoryAndQualificationRecords(contact, account, opportunity, false); sourceLead.AddActivities(contact, account, opportunity); IList<ICampaignTarget> campaignTarget = EntityFactory.GetRepository<ICampaignTarget>().FindByProperty("EntityId", sourceLead.Id.ToString()); foreach (ICampaignTarget ct in campaignTarget) sourceLead.ChangeCampaignTargetEntityID(contact, ct); leadHistory = EntityFactory.GetById<ILeadHistory>(leadHistoryId); if (leadHistory != null) { leadHistory.ContactId = contact.Id.ToString(); leadHistory.AccountId = account.Id.ToString(); leadHistory.Save(); } sourceLead.Delete(); EntityContext.RemoveEntityHistory(typeof(ILead), sourceLead.Id); if (opportunity != null) { Response.Redirect(string.Format("Opportunity.aspx?entityid={0}", opportunity.Id), false); } else { Response.Redirect(string.Format("Contact.aspx?entityId={0}", contact.Id),false); } } } }