The following code connects to a Salesforce account using the Salesforce WSDL Web Service. This example assumes you have added the Salesforce Service reference and names that reference MySalesforce.
@{
//get response values
string sessionId = "";
string serverUrl = "";
//use default binding and address from app.config
using (Web_MVC_5.MySalesforce.SoapClient loginClient = new Web_MVC_5.MySalesforce.SoapClient("Soap"))
{
//set account password and account token variables
string username = "myuser@example.com";
string password = "MyExamplePassword";
string securityToken = "MToken";
//call Login operation from Enterprise WSDL
Web_MVC_5.MySalesforce.LoginResult result = loginClient.login(null, username, password + securityToken);
//get response values
sessionId = result.sessionId;
serverUrl = result.serverUrl;
//print response values
System.Diagnostics.Debug.WriteLine(string.Format("The session ID is {0} and server URL is {1}", sessionId, serverUrl));
}
//set query endpoint to value returned by login request
System.ServiceModel.EndpointAddress apiAddr = new System.ServiceModel.EndpointAddress(serverUrl);
//instantiate session header object and set session id
Web_MVC_5.MySalesforce.SessionHeader header = new Web_MVC_5.MySalesforce.SessionHeader();
header.sessionId = sessionId;
//create service client to call API endpoint
using (Web_MVC_5.MySalesforce.SoapClient queryClient = new Web_MVC_5.MySalesforce.SoapClient("Soap", apiAddr))
{
//create SOQL query statement
string query = "";
//query by email
query = "SELECT Id, Name FROM Contact where email = 'test@example.com'";
//query by contactId
query = "SELECT Id, Name FROM Contact where Id = 'A_SALESFORCE_CONTACTID'";
Web_MVC_5.MySalesforce.QueryResult queryResult = null;
queryClient.query(
header, //sessionheader
null, //queryoptions
null, //mruheader
null, //packageversionheader
query, //SOQL query
out queryResult
);
//results
if (queryResult.records != null)
{
foreach (var record in queryResult.records)
{
var contact = (Web_MVC_5.MySalesforce.Contact)record;
System.Diagnostics.Debug.WriteLine(string.Format("Contact Name: {0}", contact.Name));
}
}
}
}