public string UpdateDataToOData(Change[] changes, string tableName, string[] headers) { HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, new Uri(this.odataEndpointURL, "$batch")); requestMessage.Headers.Add("DataServiceVersion", this.odataVersion); requestMessage.Headers.Add("MaxDataServiceVersion", this.odataMaxVersion); var setting = new ODataMessageWriterSettings(); setting.SetContentType(ODataFormat.Batch); setting.BaseUri = this.odataEndpointURL; var odataHttpRequest = new ODataHttpRequest(requestMessage); var messageWriter = new ODataMessageWriter(odataHttpRequest, setting, this.metadata); var batchWriter = messageWriter.CreateODataBatchWriter(); batchWriter.WriteStartBatch(); for (int i = 0; i < changes.Length; i++) { batchWriter.WriteStartChangeset(); if (changes[i].operation == "DELETE") { createDeleteOperationRequestMessage(ref batchWriter, changes[i], tableName); } if (changes[i].operation == "UPDATE") { createUpdateOperationRequestMessage(ref batchWriter, changes[i], tableName, headers); } batchWriter.WriteEndChangeset(); } batchWriter.WriteEndBatch(); batchWriter.Flush(); odataHttpRequest.GetStream().Seek(0, SeekOrigin.Begin); HttpResponseMessage result = new HttpResponseMessage(); using (HttpClient client = new HttpClient()) { result = client.SendAsync(requestMessage).Result; } return(parseResponseMessage(result)); }
public string UpdateDataToOData(Change[] changes, string tableName, string[] headers) { HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, new Uri(this.odataEndpointURL, "$batch")); requestMessage.Headers.Add("DataServiceVersion", this.odataVersion); requestMessage.Headers.Add("MaxDataServiceVersion", this.odataMaxVersion); var setting = new ODataMessageWriterSettings(); setting.SetContentType(ODataFormat.Batch); setting.BaseUri = this.odataEndpointURL; var odataHttpRequest = new ODataHttpRequest(requestMessage); var messageWriter = new ODataMessageWriter(odataHttpRequest, setting, this.metadata); var batchWriter = messageWriter.CreateODataBatchWriter(); batchWriter.WriteStartBatch(); for (int i = 0; i < changes.Length; i++) { batchWriter.WriteStartChangeset(); if (changes[i].operation == "DELETE") { createDeleteOperationRequestMessage(ref batchWriter, changes[i], tableName); } if (changes[i].operation == "UPDATE") { createUpdateOperationRequestMessage(ref batchWriter, changes[i], tableName, headers); } batchWriter.WriteEndChangeset(); } batchWriter.WriteEndBatch(); batchWriter.Flush(); odataHttpRequest.GetStream().Seek(0, SeekOrigin.Begin); HttpResponseMessage result = new HttpResponseMessage(); using (HttpClient client = new HttpClient()) { result = client.SendAsync(requestMessage).Result; } return parseResponseMessage(result); }