public async Task<Validation<string>> Create(Expense expense) { IEnumerable<KeyValuePair<string, string>> dict = UrlFormEncoded.Encode(expense); HttpRequestItem httpRequestItem = new HttpRequestItem() { Url = "https://api.toshl.com/expenses/", HttpMethod = HttpMethod.Post, AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken), HttpContent = new FormUrlEncodedContent(dict) }; HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem); if (httpResponseMessage.IsSuccessStatusCode) { string id = httpResponseMessage.Headers.GetValues("Location").First(); id = id.Split('/').Last(); return new Validation<string>() { ErrorMessages = new string[0], ReturnObject = id }; } return new Validation<string>() { ErrorMessages = new string[] { httpResponseMessage.ReasonPhrase } }; }
public async Task<HttpResponseMessage> RequestAsync(HttpRequestItem httpRequestItem) { _client.DefaultRequestHeaders.Authorization = httpRequestItem.AuthHeaderValue; HttpRequestMessage httpRequest = new HttpRequestMessage() { RequestUri = new Uri(httpRequestItem.Url), Method = httpRequestItem.HttpMethod, Content = httpRequestItem.HttpContent }; if (httpRequestItem.Headers != null) { foreach (var header in httpRequestItem.Headers) { httpRequest.Headers.Add(header.Item1, header.Item2); } } if (httpRequestItem.IfUnmodifiedSinceHeader != DateTime.MinValue) { httpRequest.Headers.IfUnmodifiedSince = httpRequestItem.IfUnmodifiedSinceHeader; } HttpResponseMessage httpResponseMessage = await _client.SendAsync(httpRequest); return httpResponseMessage; }
public async Task<User> Get() { HttpRequestItem httpRequestItem = new HttpRequestItem() { Url = Url, HttpMethod = HttpMethod.Get, AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken) }; HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem); string content = await httpResponseMessage.Content.ReadAsStringAsync(); User user = JsonConvertHelper.DeserializeObject<User>(content); return user; }
public async Task<Expense> Get(int expenseId) { HttpRequestItem httpRequestItem = new HttpRequestItem() { Url = "https://api.toshl.com/expenses/" + expenseId, HttpMethod = HttpMethod.Get, AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken) }; HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem); string content = await httpResponseMessage.Content.ReadAsStringAsync(); Expense expense = JsonConvertHelper.DeserializeObject<Expense>(content); return expense; }
public async Task<User> Put(User user) { HttpRequestItem httpRequestItem = new HttpRequestItem() { Url = Url, HttpMethod = HttpMethod.Put, AuthHeaderValue = new AuthenticationHeaderValue("Bearer", AccessToken), HttpContent = new FormUrlEncodedContent(JsonConvertHelper.SerializeToDictionary(user)), IfUnmodifiedSinceHeader = new DateTime(2014, 08, 02) }; HttpResponseMessage httpResponseMessage = await _requestHandler.RequestAsync(httpRequestItem); string content = await httpResponseMessage.Content.ReadAsStringAsync(); User updatedUser = JsonConvertHelper.DeserializeObject<User>(content); return updatedUser; }