public void Update(string entitySetName, CdsEntity record) { var response = _client.PatchAsync($"{entitySetName}({record.Id})", new StringContent(record.ToJson(), Encoding.UTF8, "application/json")); HandleError(response); }
public Guid Create(string entitySetName, CdsEntity record) { var response = _client.PostAsync($"{entitySetName}", new StringContent(record.ToJson(), Encoding.UTF8, "application/json")); HandleError(response); var value = response.Result.Headers.GetValues("OData-EntityId").First(); return(Guid.Parse(Regex.Matches(value, $"{response.Result.RequestMessage.RequestUri.AbsoluteUri}\\(([^\\)]+)").First().Groups.Last().Value)); }
private CdsEntity BuildEntity(JObject rawRecord, HashSet <string> unusedFields = null, Guid?recordId = null) { var record = new CdsEntity(); if (recordId.HasValue) { record.Id = recordId.Value; } foreach (var property in rawRecord.Properties()) { if (property.Name.StartsWith("@odata.", StringComparison.InvariantCultureIgnoreCase)) { continue; } else if (property.Value is JObject) { record.Attributes.Add(property.Name.ToLower(), BuildEntity((JObject)property.Value)); continue; } var value = property.Value.ToObject <object>(); record.Attributes.Add(property.Name.ToLower(), value); unusedFields?.Remove(property.Name); } if (unusedFields != null) { foreach (var field in unusedFields) { record.Attributes.Add(field, null); } } return(record); }