/// <summary> /// Get SObject by ID /// </summary> /// <param name="sObjectTypeName">SObject name, e.g. "Account"</param> /// <param name="objectId">SObject ID</param> /// <param name="fields">(optional) List of fields to retrieve, if not supplied, all fields are retrieved.</param> public async Task <T> GetObjectById <T>(string sObjectTypeName, string objectId, List <string> fields = null) { var uri = UriFormatter.SObjectRows(InstanceUrl, ApiVersion, sObjectTypeName, objectId, fields); JsonClient client = new JsonClient(AccessToken, _httpClient); return(await client.HttpGetAsync <T>(uri)); }
/// <summary> /// Get SObject by ID /// </summary> /// <param name="sObjectTypeName">SObject name, e.g. "Account"</param> /// <param name="objectId">SObject ID</param> /// <param name="fields">(optional) List of fields to retrieve, if not supplied, all fields are retrieved.</param> public async Task <T> GetObjectById <T>(string sObjectTypeName, string objectId, List <string> fields = null) { Dictionary <string, string> headers = HeaderFormatter.SforceCallOptions(ClientName); var uri = UriFormatter.SObjectRows(InstanceUrl, ApiVersion, sObjectTypeName, objectId, fields); JsonClient client = new JsonClient(AccessToken, _httpClient); return(await client.HttpGetAsync <T>(uri, headers)); }
/// <summary> /// Delete record /// </summary> /// <param name="sObjectTypeName">SObject name, e.g. "Account"</param> /// <param name="objectId">Id of Object to update</param> /// <returns>void, API returns 204/NoContent</returns> /// <exception cref="ForceApiException">Thrown when update fails</exception> public async Task DeleteRecord(string sObjectTypeName, string objectId) { var uri = UriFormatter.SObjectRows(InstanceUrl, ApiVersion, sObjectTypeName, objectId); JsonClient client = new JsonClient(AccessToken, _httpClient); await client.HttpDeleteAsync <object>(uri); return; }
/// <summary> /// Updates /// </summary> /// <param name="sObjectTypeName">SObject name, e.g. "Account"</param> /// <param name="objectId">Id of Object to update</param> /// <param name="sObject">Object to update</param> /// <returns>void, API returns 204/NoContent</returns> /// <exception cref="ForceApiException">Thrown when update fails</exception> public async Task UpdateRecord <T>(string sObjectTypeName, string objectId, T sObject) //where T : ISObject { var uri = UriFormatter.SObjectRows(InstanceUrl, ApiVersion, sObjectTypeName, objectId); JsonClient client = new JsonClient(AccessToken, _httpClient); await client.HttpPatchAsync <object>(sObject, uri); return; }
/// <summary> /// Updates /// </summary> /// <param name="sObjectTypeName">SObject name, e.g. "Account"</param> /// <param name="objectId">Id of Object to update</param> /// <param name="sObject">Object to update</param> /// <param name="customHeaders">Custom headers to include in request (Optional). await The HeaderFormatter helper class can be used to generate the custom header as needed.</param> /// <returns>void, API returns 204/NoContent</returns> /// <exception cref="ForceApiException">Thrown when update fails</exception> public async Task UpdateRecord <T>(string sObjectTypeName, string objectId, T sObject, Dictionary <string, string> customHeaders = null) { var uri = UriFormatter.SObjectRows(InstanceUrl, ApiVersion, sObjectTypeName, objectId); JsonClient client = new JsonClient(AccessToken, _httpClient); await client.HttpPatchAsync <object>(sObject, uri, customHeaders); return; }
/// <summary> /// Delete record /// </summary> /// <param name="sObjectTypeName">SObject name, e.g. "Account"</param> /// <param name="objectId">Id of Object to update</param> /// <returns>void, API returns 204/NoContent</returns> /// <exception cref="ForceApiException">Thrown when update fails</exception> public async Task DeleteRecord(string sObjectTypeName, string objectId) { Dictionary <string, string> headers = HeaderFormatter.SforceCallOptions(ClientName); var uri = UriFormatter.SObjectRows(InstanceUrl, ApiVersion, sObjectTypeName, objectId); JsonClient client = new JsonClient(AccessToken, _httpClient); await client.HttpDeleteAsync <object>(uri, headers); return; }
/// <summary> /// Updates /// </summary> /// <param name="sObjectTypeName">SObject name, e.g. "Account"</param> /// <param name="objectId">Id of Object to update</param> /// <param name="sObject">Object to update</param> /// <param name="customHeaders">Custom headers to include in request (Optional). await The HeaderFormatter helper class can be used to generate the custom header as needed.</param> /// <returns>void, API returns 204/NoContent</returns> /// <exception cref="ForceApiException">Thrown when update fails</exception> public async Task UpdateRecord <T>(string sObjectTypeName, string objectId, T sObject, Dictionary <string, string> customHeaders = null) { Dictionary <string, string> headers = new Dictionary <string, string>(); //Add call options Dictionary <string, string> callOptions = HeaderFormatter.SforceCallOptions(ClientName); headers.AddRange(callOptions); //Add custom headers if specified if (customHeaders != null) { headers.AddRange(customHeaders); } var uri = UriFormatter.SObjectRows(InstanceUrl, ApiVersion, sObjectTypeName, objectId); JsonClient client = new JsonClient(AccessToken, _httpClient); await client.HttpPatchAsync <object>(sObject, uri, headers); return; }