public async Task<SearchResult> GetConnections(string from, string to, DateTime time, bool isArrival = false) { // Check for network connectivity if (!NetworkInterface.GetIsNetworkAvailable()) return null; var client = new RestClient("http://transport.opendata.ch/v1/"); var request = new RestRequest("connections") .AddParameter("from", from) .AddParameter("to", to) .AddParameter("date", time.ToString("yyyy-MM-dd")) .AddParameter("time", time.ToString("HH:mm")) .AddParameter("isArrivalTime", isArrival ? 1 : 0); try { return await client .ExecutTaskAsync(request) .ContinueWith(task => JObject.Parse(task.Result.Content).ToObject<SearchResult>()); } catch (Exception) { return null; } }
public async Task<IEnumerable<Station>> GetLocations(string locationName) { // First search in cache var cached = GetCachedLocation(locationName); if (cached != null) return cached as IEnumerable<Station>; // Check for network connectivity if (!NetworkInterface.GetIsNetworkAvailable()) return Enumerable.Empty<Station>(); // If nothing found in cache query sbb.ch var client = new RestClient("http://transport.opendata.ch/v1/"); var request = new RestRequest("locations") .WithRootElement("stations") .WithFormat(DataFormat.Json) .AddParameter("query", locationName); try { var result = await client .ExecutTaskAsync<List<Station>>(request) .ContinueWith(task => task.Result.Data); UpdateCachedLocation(locationName, result); return result; } catch (Exception) { return Enumerable.Empty<Station>(); } }
public Task<IEnumerable<Station>> GetLocations(string locationName) { var client = new RestClient("http://transport.opendata.ch/v1/"); var request = new RestRequest("locations") .WithRootElement("stations") .WithFormat(DataFormat.Json) .AddParameter("query", locationName); return client .ExecutTaskAsync<List<Station>>(request) .ContinueWith(task => task.Result.Data as IEnumerable<Station>); }
public Task<SearchResult> GetConnections(string from, string to, DateTime time, bool isArrival = false) { var client = new RestClient("http://transport.opendata.ch/v1/"); var request = new RestRequest("connections") .AddParameter("from", from) .AddParameter("to", to) .AddParameter("date", time.ToString("yyyy-MM-dd")) .AddParameter("time", time.ToString("HH:mm")) .AddParameter("isArrivalTime", isArrival ? 1 : 0); return client .ExecutTaskAsync(request) .ContinueWith(task => JObject.Parse(task.Result.Content).ToObject<SearchResult>()); }
public async Task<Token> LoginAsync(Token token) { // Check for network connectivity if (!NetworkInterface.GetIsNetworkAvailable()) return null; var client = new RestClient("http://trainshare.herokuapp.com/v1/"); var request = new RestRequest("login", Method.POST) .AddJson( new JObject( new JProperty("network", token.Network), new JProperty("access_token", token.AccessToken), new JProperty("access_token_secret", token.AccessTokenSecret))); request.RequestFormat = DataFormat.Json; try { var json = await client .ExecutTaskAsync(request) .ContinueWith(task => JObject.Parse(task.Result.Content)); InsertOrUpdateToken( new Token { Network = "trainshare", AccessToken = json["trainshare_id"].Value<string>(), AccessTokenSecret = json["trainshare_token"].Value<string>() }); Events.Publish(Token); return Token; } catch (Exception e) { _logger.Error(e); return null; } }
public async Task<List<TrainshareFriend>> GetFriends() { // Check for network connectivity if (!NetworkInterface.GetIsNetworkAvailable()) return new List<TrainshareFriend>(); var client = new RestClient("http://trainshare.herokuapp.com/v1/"); var request = new RestRequest("read", Method.POST) .AddParameter("trainshare_id", Token.AccessToken) .AddParameter("trainshare_token", Token.AccessTokenSecret); try { return await client .ExecutTaskAsync<List<TrainshareFriend>>(request) .ContinueWith(task => task.Result.Data); } catch(Exception e) { _logger.Error(e); return new List<TrainshareFriend>(); } }
/* * departure_station: "Bern", * departure_time: "16:34", * arrival_station: "Basel SBB", * arrival_time: "17:29", * train_id: "IC 1080" */ public async Task Checkin(Checkin checkin) { // Check for network connectivity if (!NetworkInterface.GetIsNetworkAvailable()) return; var client = new RestClient("http://trainshare.herokuapp.com/v1/"); var request = new RestRequest("checkin", Method.POST) .AddJson( new JObject( new JProperty("trainshare_id", Token.AccessToken), new JProperty("trainshare_token", Token.AccessTokenSecret), new JProperty("data", new JArray( checkin .Sections .Select( section => new JObject( new JProperty("departure_station", section.DepartureStation), new JProperty("departure_time", section.DepartureTime.ToString("HH:mm")), new JProperty("arrival_station", section.ArrivalStation), new JProperty("arrival_time", section.ArrivalTime.ToString("HH:mm")), new JProperty("train_id", section.TrainId), new JProperty("position", checkin.Position))))))); try { //Skipping the result on purpouse await client.ExecutTaskAsync(request); AddCheckin(checkin); CurrentCheckin = checkin; Events.Publish(CurrentCheckin); } catch (Exception e) { _logger.Error(e); } }
private static Task<JObject> GetUserInfo(string accessToken) { var client = new RestClient("https://graph.facebook.com/me"); var request = new RestRequest() .AddParameter("access_token", accessToken); return client .ExecutTaskAsync(request) .ContinueWith(task => JObject.Parse(task.Result.Content)); }