mirror of
https://bitbucket.org/myhomie/mycorerepository.git
synced 2025-12-06 09:41:19 +00:00
163 lines
5.5 KiB
C#
163 lines
5.5 KiB
C#
using MyCore.DTO;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Web;
|
|
|
|
namespace MyCore.Services
|
|
{
|
|
public class OddService
|
|
{
|
|
private HttpClient _client = new HttpClient();
|
|
private string _servicePoint = "https://api.the-odds-api.com/v3/odds/?";
|
|
private string _apiKey = "285d0ebdb4b29415f6fef8b83729f655";
|
|
private string _url;
|
|
private string _region;
|
|
|
|
public List<League> allLeagues = new List<League>();
|
|
|
|
public class League
|
|
{
|
|
public string ApiIdentifiant { get; set; }
|
|
public string Identifiant { get; set; }
|
|
|
|
public League(string league) {
|
|
Identifiant = league;
|
|
switch (league)
|
|
{
|
|
case "BE":
|
|
ApiIdentifiant = "soccer_belgium_first_div";
|
|
break;
|
|
case "UK":
|
|
ApiIdentifiant = "soccer_epl";
|
|
break;
|
|
case "DK":
|
|
ApiIdentifiant = "soccer_denmark_superliga";
|
|
break;
|
|
case "FR":
|
|
ApiIdentifiant = "soccer_france_ligue_one";
|
|
break;
|
|
case "DE":
|
|
ApiIdentifiant = "soccer_germany_bundesliga";
|
|
break;
|
|
case "IT":
|
|
ApiIdentifiant = "soccer_italy_serie_a";
|
|
break;
|
|
case "NE":
|
|
ApiIdentifiant = "soccer_netherlands_eredivisie";
|
|
break;
|
|
case "PT":
|
|
ApiIdentifiant = "soccer_portugal_primeira_liga";
|
|
break;
|
|
case "RU":
|
|
ApiIdentifiant = "soccer_russia_premier_league";
|
|
break;
|
|
case "ES":
|
|
ApiIdentifiant = "soccer_spain_la_liga";
|
|
break;
|
|
case "CH":
|
|
ApiIdentifiant = "soccer_switzerland_superleague";
|
|
break;
|
|
case "TR":
|
|
ApiIdentifiant = "soccer_turkey_super_league";
|
|
break;
|
|
default:
|
|
ApiIdentifiant = "soccer_epl";
|
|
break;
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
public class RegionOdd
|
|
{
|
|
public static string UK { get; set; } = "uk";
|
|
public static string US { get; set; } = "us";
|
|
public static string AU { get; set; } = "au";
|
|
}
|
|
|
|
public OddService(string region)
|
|
{
|
|
|
|
_region = region;
|
|
|
|
_url = $"{_servicePoint}apiKey={_apiKey}®ion={_region}";
|
|
|
|
_client.BaseAddress = new Uri(_url);
|
|
|
|
// TO REVIEW !
|
|
League leagueBE = new League("BE");
|
|
League leagueUK = new League("UK");
|
|
League leagueDK = new League("DK");
|
|
League leagueFR = new League("FR");
|
|
League leagueDE = new League("DE");
|
|
League leagueIT = new League("IT");
|
|
League leagueNE = new League("NE");
|
|
League leaguePT = new League("PT");
|
|
League leagueRU = new League("RU");
|
|
League leagueES = new League("ES");
|
|
League leagueCH = new League("CH");
|
|
League leagueTR = new League("TR");
|
|
|
|
allLeagues.Add(leagueBE);
|
|
allLeagues.Add(leagueUK);
|
|
allLeagues.Add(leagueDK);
|
|
allLeagues.Add(leagueFR);
|
|
allLeagues.Add(leagueDE);
|
|
allLeagues.Add(leagueIT);
|
|
allLeagues.Add(leagueNE);
|
|
allLeagues.Add(leaguePT);
|
|
allLeagues.Add(leagueRU);
|
|
allLeagues.Add(leagueES);
|
|
allLeagues.Add(leagueCH);
|
|
allLeagues.Add(leagueTR);
|
|
}
|
|
|
|
public async Task<List<Odd>> GetOddsForLeague(League league)
|
|
{
|
|
try
|
|
{
|
|
|
|
using (HttpClient client = new HttpClient())
|
|
{
|
|
var builder = new UriBuilder(_servicePoint);
|
|
builder.Port = -1;
|
|
var query = HttpUtility.ParseQueryString(builder.Query);
|
|
query["apiKey"] = _apiKey;
|
|
query["region"] = _region;
|
|
query["sport"] = league.ApiIdentifiant;
|
|
builder.Query = query.ToString();
|
|
string url = builder.ToString();
|
|
|
|
_client.BaseAddress = new Uri(url);
|
|
|
|
var response = await client.GetAsync(url);
|
|
if (response != null)
|
|
{
|
|
var jsonString = await response.Content.ReadAsStringAsync();
|
|
var data = ((JObject)JsonConvert.DeserializeObject(jsonString))["data"];
|
|
return JsonConvert.DeserializeObject<List<Odd>>(data.ToString());
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Console.WriteLine(ex);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public List<Odd> GetOddsForAllLeagues()
|
|
{
|
|
List<Odd> oddsToReturn = new List<Odd>();
|
|
return oddsToReturn;
|
|
}
|
|
|
|
}
|
|
}
|