Example #1
0
        public async Task <IActionResult> CompleteGame()
        {
            if (Connector.Game != null)
            {
                if (Convert.ToInt32(await SettingsUtil.GetSetting("GameId")) == Connector.Game.GameId)
                {
                    var gameTime = await SettingsUtil.GetSetting("GameTime");

                    if (!String.IsNullOrEmpty(gameTime))
                    {
                        if (TimeSpan.Parse(gameTime) < new TimeSpan(0, 48, 0))
                        {
                            return(RedirectToAction("Index", "Game", new { errorMsg = "Game not eligible for completion" }));
                        }

                        var request = new CompleteGameRequest()
                        {
                            ApiToken  = Connector.CurrentApiToken,
                            LeagueKey = Connector.League.LeagueKey,
                            GameId    = Connector.Game.GameId
                        };

                        string errorMessage = "";
                        var    finishedGame = this.ApiClient.Post <Game>("Game/CompleteGame", JsonConvert.SerializeObject(request), ref errorMessage);

                        if (finishedGame != null)
                        {
                            Connector.Game = finishedGame;
                            return(RedirectToAction("Index", "Game", new { actionMsg = "Game has been completed and stats recorded" }));
                        }
                    }
                }
            }
            return(RedirectToAction("Index", "Game", new { errorMsg = "Erro Completing Game" }));
        }
Example #2
0
        public async Task <ActionResult> CompleteGame(CompleteGameRequest request)
        {
            if (!await this.IsAPITokenValid(request.ApiToken))
            {
                return(new BadRequestObjectResult("UnAuthorized"));
            }

            string leagueId = await this.GetLeagueId(request.LeagueKey);

            if (leagueId == null)
            {
                return(new BadRequestObjectResult("League Not Found"));
            }

            var game = await this.GameRepository.GetAsync(request.GameId);

            if (game == null)
            {
                return(new BadRequestObjectResult("Game Not Found"));
            }

            if (!game.GameComplete)
            {
                var homeTeamScoringLogs = await this.ScoringLogRepository.GetByTeamAndGameAsync(game.HomeTeamId, game.GameId);

                var awayTeamScoringLogs = await this.ScoringLogRepository.GetByTeamAndGameAsync(game.AwayTeamId, game.GameId);

                var homeTeamScore = homeTeamScoringLogs.Sum(x => x.Points);
                var awayTeamScore = awayTeamScoringLogs.Sum(x => x.Points);

                var completeGame = new CompleteGame()
                {
                    GameId  = game.GameId,
                    Date    = game.Date,
                    TieFlag = false
                };

                if (homeTeamScore > awayTeamScore)
                {
                    completeGame.WinningTeamId = game.HomeTeamId;
                    completeGame.LosingTeamId  = game.AwayTeamId;
                }
                else if (awayTeamScore > homeTeamScore)
                {
                    completeGame.WinningTeamId = game.AwayTeamId;
                    completeGame.LosingTeamId  = game.HomeTeamId;
                }
                else
                {
                    completeGame.WinningTeamId = game.HomeTeamId;
                    completeGame.LosingTeamId  = game.AwayTeamId;
                    completeGame.TieFlag       = true;
                }

                var newCompleteGame = await CompleteGameRepository.CompleteGame(completeGame);

                if (newCompleteGame == null)
                {
                    return(new BadRequestObjectResult("Error Completing Game"));
                }
            }

            game.GameComplete = true;

            return(new OkObjectResult(await this.GameRepository.UpdateAsync(game)));
        }
Example #3
0
 public static void Execute(CompleteGameRequest request)
 {
     DbHelper.CompleteGame(Guid.Parse(request.TurnamentId), Guid.Parse(request.GameId));
     DbHelper.RemoveSkip(Guid.Parse(request.TurnamentId), Guid.Parse(request.GameId));
 }
 public void CompleteGame(CompleteGameRequest request) => CompleteGameBLL.Execute(request);