StandingService.cs 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. namespace FormulaOneApp.ErgastAPI.Services.Standings
  2. {
  3. using System.Threading.Tasks;
  4. using System;
  5. using System.Net;
  6. using Model.Standing;
  7. using Newtonsoft.Json;
  8. using Base;
  9. /// <summary>
  10. ///
  11. /// </summary>
  12. public class StandingService : HttpWebBase, IStandingService
  13. {
  14. /// <summary>
  15. ///
  16. /// </summary>
  17. /// <param name="season"></param>
  18. /// <returns></returns>
  19. public async Task<StandingTable> GetSeasonConstructorStandingsCollectionAsync(string season = "current")
  20. {
  21. StandingRootObject data = null;
  22. var url = string.Format("http://ergast.com/api/f1/{0}/constructorStandings.json", season);
  23. HttpWebRequest request = WebRequest.CreateHttp(new Uri(url));
  24. var response = await HttpRequest(request);
  25. if (response != null)
  26. data = JsonConvert.DeserializeObject<StandingRootObject>(response);
  27. return data != null ? data.MRData.StandingsTable : null;
  28. }
  29. /// <summary>
  30. ///
  31. /// </summary>
  32. /// <param name="season"></param>
  33. /// <returns></returns>
  34. public async Task<StandingTable> GetSeasonDriverStandingsCollectionAsync(string season = "current")
  35. {
  36. StandingRootObject data = null;
  37. var url = string.Format("http://ergast.com/api/f1/{0}/driverStandings.json", season);
  38. HttpWebRequest request = WebRequest.CreateHttp(new Uri(url));
  39. var response = await HttpRequest(request);
  40. if (response != null)
  41. data = JsonConvert.DeserializeObject<StandingRootObject>(response);
  42. return data != null ? data.MRData.StandingsTable : null;
  43. }
  44. }
  45. }