private async Task <WeightMeasurement> UpdateViaPatchAsync(Guid id, DateTime?entryDate, double?weight, WeightMeasurement.Units?unit) { string path = $"api/Weight/{id}"; List <string> updateMask = new List <string>(); var requestSource = new RequestModels.WeightUpdate(); if (entryDate.HasValue) { updateMask.Add(requestSource.GetJsonPropertyName(x => x.EntryDate)); requestSource.EntryDate = entryDate.Value; } if (weight.HasValue) { updateMask.Add(requestSource.GetJsonPropertyName(x => x.Weight)); requestSource.Weight = weight.Value; } if (unit.HasValue && unit.Value != WeightMeasurement.Units.None) { updateMask.Add(requestSource.GetJsonPropertyName(x => x.Unit)); requestSource.Unit = unit.Value.ToString(); } if (updateMask.Count > 0) { path += "?update_mask=" + string.Join(",", updateMask); } var responseTask = apiClient.PatchAsync(path, requestSource); var response = await responseTask; var result = RestHelper.ProcessResults <WeightUpdated>(response); return(result.MapTo()); }
private async Task <WeightMeasurement> UpdateViaPutAsync(Guid id, DateTime?entryDate, double?weight, WeightMeasurement.Units?unit) { string path = $"api/Weight/{id}"; // This is a PUT var requestSource = new RequestModels.WeightUpdate { EntryDate = entryDate.Value, Weight = weight.Value, Unit = unit.Value.ToString() }; var responseTask = apiClient.PutAsync(path, requestSource); var response = await responseTask; var result = RestHelper.ProcessResults <WeightUpdated>(response); return(result.MapTo()); }