Ejemplo n.º 1
0
        public Step(LegResponse legResponseModel)
        {
            FullName      = legResponseModel.Name;
            ShortName     = legResponseModel.SName;
            JourneyNumber = legResponseModel.JourneyNumber;
            JourneyId     = legResponseModel.Id;
            switch (legResponseModel.Type)
            {
            case "VAS":
            case "LDT":
            case "REG":
                VehicleType = VehicleType.Train;
                break;

            case "BUS":
                VehicleType = VehicleType.Bus;
                break;

            case "BOAT":
                VehicleType = VehicleType.Boat;
                break;

            case "TRAM":
                VehicleType = VehicleType.Tram;
                break;

            case "TAXI":
                VehicleType = VehicleType.Taxi;
                break;

            case "WALK":
                VehicleType = VehicleType.Walk;
                break;

            case "BIKE":
                VehicleType = VehicleType.Bicycle;
                break;

            case "CAR":
                VehicleType = VehicleType.Car;
                break;

            default:
                VehicleType = VehicleType.Unknown;
                break;
            }
            Direction           = legResponseModel.Direction;
            LineLogoForeground  = legResponseModel.ForegroundColor;
            LineLogoBackground  = legResponseModel.BackgroundColor;
            LineLogoBorderStyle = legResponseModel.Stroke;
            Accessibility       = legResponseModel.Accessibility;
            Origin      = new Origin(legResponseModel.Origin);
            Destination = new Destination(legResponseModel.Destination);
        }
Ejemplo n.º 2
0
        public async Task <List <LegResponse> > GetRace(string raceId)
        {
            using (var client = new HttpClient())
            {
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0");
                var json = await client.GetStringAsync($"https://www.atg.se/services/racinginfo/v1/api/games/{raceId}");

                var o      = JObject.Parse(json);
                var result = new List <LegResponse>();
                var legNr  = 1;
                foreach (var race in o.SelectTokens("races[*]"))
                {
                    var leg = new LegResponse();
                    leg.Number      = legNr++;//race.SelectToken("number").Value<int>();
                    leg.StartMethod = race.SelectToken("startMethod").Value <string>();
                    leg.Name        = race.SelectToken("name")?.Value <string>();
                    leg.Distance    = race.SelectToken("distance").Value <string>();

                    foreach (var start in race.SelectTokens("starts[*]"))
                    {
                        var horse = new HorseResponse
                        {
                            Age             = start.SelectToken("horse.age").Value <int>(),
                            Name            = start.SelectToken("horse.name").Value <string>(),
                            Gender          = start.SelectToken("horse.sex").Value <string>(),
                            StartNumber     = start.SelectToken("number").Value <int>(),
                            Driver          = ParseDriver(start),
                            Enabled         = !(start.SelectToken("scratched")?.Value <bool>() ?? false),
                            MarksPercentage = start.SelectToken("pools.V75.betDistribution").Value <int>() / 100f,
                            MarksQuantity   = 0,
                            Odds            = start.SelectToken("pools.vinnare.odds").Value <int>() / 100f,
                            Money           = start.SelectToken("horse.money").Value <int>(),
                            Record          = ParseRecord(start),
                            PlaceOdds       = ParsePlaceOdds(start),
                            StartPoints     = start.SelectToken("horse.statistics.life.startPoints").Value <int>()
                        };
                        leg.Horses.Add(horse);
                    }
                    result.Add(leg);
                }

                return(result);
            }
        }