예제 #1
0
        private Linescore GetRandomLineScore(int numberOfEnds, int numberOfPlayedEnds)
        {
            var  linescore   = new Linescore(numberOfEnds);
            var  rand        = new Random();
            int  team1Score  = 0;
            int  team2Score  = 0;
            bool team1Hammer = (rand.Next() % 2 == 0);

            for (var endNumber = 1; endNumber <= numberOfPlayedEnds; endNumber++)
            {
                if (team1Score > 0)
                {
                    team1Hammer = false;
                }
                else if (team2Score > 0)
                {
                    team1Hammer = true;
                }

                team1Score = 0;
                team2Score = 0;
                if (rand.Next() % 2 == 0)
                {
                    team1Score = GetRandomScore();
                }
                else
                {
                    team2Score = GetRandomScore();
                }
                linescore.AddEnd(new End(team1Score, team2Score, team1Hammer, endNumber, true));
            }
            return(linescore);
        }
예제 #2
0
        public static Game GetGame(string czGameId, Guid eventId, Guid drawId)
        {
            string gameJson = Request.GetGameJson(czGameId);

            Api.GameObject apiGame   = Api.GetGameObject(gameJson);
            Team           team1     = GetTeam(apiGame, true);
            Team           team2     = GetTeam(apiGame, false);
            Linescore      linescore = GetLinescore(apiGame);
            bool           isFinal   = GetIsFinal(apiGame.gameStatus);

            long     drawStartTimeInUnixTimeStamp = long.Parse(apiGame.draw.startsAt);
            DateTime drawStart = DateTimeOffset.FromUnixTimeSeconds(drawStartTimeInUnixTimeStamp).UtcDateTime;


            bool isOverAndFullyParsed = false;

            if (DateTime.Now.AddHours(-6) > drawStart && isFinal)
            {
                isOverAndFullyParsed = true;
            }
            Game game = new Game(team1, team2, linescore, isFinal, eventId, isOverAndFullyParsed, drawId);

            Program.Logger.Log("Getting Game", game);
            return(game);
        }
예제 #3
0
        private static Linescore GetLinescore(Api.GameObject apiGame)
        {
            int numberOfEnds = 10;

            int.TryParse(apiGame.numberOfEnds, out numberOfEnds);

            int lastPlayedEnd = 10;

            int.TryParse(apiGame.lastPlayedEnd, out lastPlayedEnd);

            Linescore linescore   = new Linescore(numberOfEnds);
            bool      team1Hammer = apiGame.homeHammer;

            for (var endNumber = 1; endNumber <= numberOfEnds + 1 && (endNumber - 1) < apiGame.homeScores.Count; endNumber++)
            {
                int team1Score = Utility.ParseIntWithDefault(apiGame.homeScores[endNumber - 1], 0);
                int team2Score = Utility.ParseIntWithDefault(apiGame.awayScores[endNumber - 1], 0);
                if (team1Score > 0 && team2Score > 0)
                {
                    Program.Logger.Log("Found end where both teams score.  Arbitrarily setting team 2's score to 0.");
                    team2Score = 0;
                }
                var end = new End(
                    team1Score,
                    team2Score,
                    team1Hammer,
                    endNumber,
                    (endNumber <= lastPlayedEnd)
                    );
                linescore.AddEnd(end);

                if (team1Score > 0)
                {
                    team1Hammer = false;
                }
                else if (team2Score > 0)
                {
                    team1Hammer = true;
                }
            }
            return(linescore);
        }