예제 #1
0
        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());
        }
예제 #2
0
        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());
        }