Executing Salesforce Partner API Methods

Use the SalesforceSession Binding property to execute API methods. In the following unit test example, the method ConvertLead is used to convert a Salesforce Lead to a Contact (Lead to Account and Opportunity conversions are also possible):


public void ConvertLead()
{
    SalesforceSession salesforceSession = SessionTest.GetActiveSession();
    Lead lead = null;
    LeadService leadService = null;
    ContactService contactService = null;
    Contact contact = null;
	try
	{
		lead = new Lead();
		lead.FirstName = "John";
		lead.LastName = "Smith";
		lead.Company = "Smith Co";
        lead.Status = "Closed - Converted";
        leadService = new LeadService(salesforceSession);
        SaveResult saveResult = leadService.Insert(lead);


        Assert.IsTrue(saveResult.success);
        // Lead will now have an Id
        Assert.IsTrue(leadService.ValidEntityId(lead.Id));
        LeadConvert leadConvert = new LeadConvert();
        leadConvert.leadId = lead.Id;
        leadConvert.overwriteLeadSource = false;
        leadConvert.doNotCreateOpportunity = true;
        leadConvert.convertedStatus = lead.Status;
        leadConvert.sendNotificationEmail = false;
        //leadConvert.contactId = contactId;
        //leadConvert.accountId = accountId;
        //leadConvert.opportunityName = opportunityName;

        LeadConvertResult[] lcr = salesforceSession.Binding.convertLead(new LeadConvert[] { leadConvert });
        for (int i = 0; i < lcr.Length; i++)
        {
			if (lcr[i].success)
          	{
				Console.WriteLine("Conversion succeeded.\n");
				LeadConvertResult result = lcr[i];
				contactService = new ContactService(salesforceSession);
				contact = contactService.GetByEntityId(result.contactId);
				
				Assert.IsTrue(contactService.ValidEntityId(result.contactId));
			}
            else
			{
				Console.WriteLine("Failed: " + lcr[i].errors[0].message);

				Assert.Fail();
			}
		}
	}
	finally
	{
		if (contactService != null && contact != null && contact.Id != null)
		{
			try { contactService.DeleteContact(contact); }
			catch (Exception) { }
		}
	}
}