using cwebplusApp.Shared.Models; using Json.Net; using System; using System.Collections.Generic; using System.Globalization; using System.Net.Http; using System.Threading.Tasks; namespace cwebplusApp.Shared.Services { // REST interface responsible to submit lost or found reports and get the available master data. public class LFBicycleRest : ILFBicycleRest { private static readonly string VERSION = "v1"; private readonly HttpClient httpClient; public LFBicycleRest() { this.httpClient = new HttpClient { BaseAddress = new Uri("https://integrate.dynalias.net:9443/Fundvelo/") }; } public async Task> GetColors() { HttpResponseMessage httpResult = await httpClient.GetAsync(string.Format("api/{0}/{1}/fundvelo/colors", VERSION, CultureInfo.CurrentCulture.TwoLetterISOLanguageName)); if (httpResult.StatusCode == System.Net.HttpStatusCode.OK) { ColorItem[] colors = JsonNet.Deserialize(await httpResult.Content.ReadAsStringAsync()); return new List(colors); } throw new HttpRequestException("HTTP error " + httpResult.StatusCode); } public async Task> GetBicycleTypes() { HttpResponseMessage httpResult = await httpClient.GetAsync(string.Format("api/{0}/{1}/fundvelo/types", VERSION, CultureInfo.CurrentCulture.TwoLetterISOLanguageName)); if (httpResult.StatusCode == System.Net.HttpStatusCode.OK) { BicycleType[] bicycleTypes = JsonNet.Deserialize(await httpResult.Content.ReadAsStringAsync()); return new List(bicycleTypes); } throw new HttpRequestException("HTTP error " + httpResult.StatusCode); } public async Task> GetBrands() { HttpResponseMessage httpResult = await httpClient.GetAsync(string.Format("api/{0}/{1}/fundvelo/brands", VERSION, CultureInfo.CurrentCulture.TwoLetterISOLanguageName)); if (httpResult.StatusCode == System.Net.HttpStatusCode.OK) { Brand[] brands = JsonNet.Deserialize(await httpResult.Content.ReadAsStringAsync()); return new List(brands); } throw new HttpRequestException("HTTP error " + httpResult.StatusCode); } } }