static async Task <HttpResponseMessage> PatchObjectToAPI <T>(string apiUrl, T data) { var stringPayload = await Task.Run(() => JsonConvert.SerializeObject(data)).ConfigureAwait(false); var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json"); var httpRequest = new HttpRequestMessage { Method = new HttpMethod("PATCH"), RequestUri = new Uri(apiUrl), Content = httpContent }; try { UpdateActivityIndicatorStatus(true); return(await _client.SendAsync(httpRequest).ConfigureAwait(false)); } catch (Exception e) { MobileCenterHelpers.Log(e); return(null); } finally { UpdateActivityIndicatorStatus(false); } }
static async Task <HttpResponseMessage> DeleteObjectFromAPI(string apiUrl) { var httpRequest = new HttpRequestMessage(HttpMethod.Delete, new Uri(apiUrl)); try { UpdateActivityIndicatorStatus(true); return(await _client.SendAsync(httpRequest).ConfigureAwait(false)); } catch (Exception e) { MobileCenterHelpers.Log(e); return(null); } finally { UpdateActivityIndicatorStatus(false); } }
protected static async Task <HttpResponseMessage> PostObjectToAPI <T>(string apiUrl, T data) { var stringPayload = await Task.Run(() => JsonConvert.SerializeObject(data)).ConfigureAwait(false); var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json"); try { UpdateActivityIndicatorStatus(true); return(await Client.PostAsync(apiUrl, httpContent).ConfigureAwait(false)); } catch (Exception e) { MobileCenterHelpers.Log(e); return(null); } finally { UpdateActivityIndicatorStatus(false); } }
static async Task <T> GetDataObjectFromAPI <T, U>(string apiUrl, U data = default(U)) { var stringPayload = string.Empty; if (data != null) { stringPayload = await Task.Run(() => JsonConvert.SerializeObject(data)).ConfigureAwait(false); } var httpContent = new StringContent(stringPayload, Encoding.UTF8, "application/json"); try { UpdateActivityIndicatorStatus(true); using (var stream = await _client.GetStreamAsync(apiUrl).ConfigureAwait(false)) using (var reader = new StreamReader(stream)) using (var json = new JsonTextReader(reader)) { if (json == null) { return(default(T)); } return(await Task.Run(() => _serializer.Deserialize <T>(json)).ConfigureAwait(false)); } } catch (Exception e) { MobileCenterHelpers.Log(e); return(default(T)); } finally { UpdateActivityIndicatorStatus(false); } }