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" })); }
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))); }
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);