Beispiel #1
0
        public GameResultViewModel Build(PlayerGameResult playerGameResult, bool showPointsScored = false)
        {
            Validate(playerGameResult);

            GameResultViewModel result = new GameResultViewModel
            {
                PlayerId           = playerGameResult.PlayerId,
                PlayerName         = PlayerNameBuilder.BuildPlayerName(playerGameResult.Player.Name, playerGameResult.Player.Active),
                PointsScored       = playerGameResult.PointsScored,
                GameRank           = playerGameResult.GameRank,
                NemePointsSummary  = new NemePointsSummaryViewModel(playerGameResult.NemeStatsPointsAwarded, playerGameResult.GameDurationBonusPoints, playerGameResult.GameWeightBonusPoints),
                GameDefinitionId   = playerGameResult.PlayedGame.GameDefinition.Id,
                GameDefinitionName = playerGameResult.PlayedGame.GameDefinition.Name,
                PlayedGameId       = playerGameResult.PlayedGameId,
                DatePlayed         = playerGameResult.PlayedGame.DatePlayed,
                BoardGameGeekUri   = BoardGameGeekUriBuilder.BuildBoardGameGeekGameUri(playerGameResult.PlayedGame.GameDefinition.BoardGameGeekGameDefinitionId),
                WinnerType         = playerGameResult.PlayedGame.WinnerType,
                ShowPointsScored   = showPointsScored
            };

            if (playerGameResult.PlayedGame.GameDefinition.BoardGameGeekGameDefinition != null)
            {
                result.ThumbnailImageUrl = playerGameResult.PlayedGame.GameDefinition.BoardGameGeekGameDefinition.Thumbnail;
                result.ImageUrl          = playerGameResult.PlayedGame.GameDefinition.BoardGameGeekGameDefinition.Image;
            }

            return(result);
        }
Beispiel #2
0
        public void SetUp()
        {
            this.builder = new GameResultViewModelBuilder();
            GameDefinition gameDefinition = new GameDefinition()
            {
                Id   = 15131,
                Name = "Yodle-masters 2014"
            };
            PlayedGame playedGame = new PlayedGame()
            {
                GameDefinition = gameDefinition,
                DatePlayed     = new DateTime(2014, 09, 15)
            };

            this.playerGameResult = new PlayerGameResult()
            {
                GameRank = 1,
                NemeStatsPointsAwarded = 2,
                Id       = 151,
                PlayerId = 15135,
                Player   = new Player()
                {
                    Name = "Test Player"
                },
                PlayedGameId = 1432,
                PlayedGame   = playedGame
            };

            this.playerGameResultDetails = this.builder.Build(this.playerGameResult);
        }
Beispiel #3
0
 private static void ValidatePlayerGameResultsDetailsAreNotNull(GameResultViewModel playerGameResultDetails)
 {
     if (playerGameResultDetails == null)
     {
         throw new ArgumentNullException("playerGameResultDetails");
     }
 }
Beispiel #4
0
        // GET: Games/Edit/5
        public async Task <IActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }
            GameResultViewModel viewModel = new GameResultViewModel();

            var game = await _context.Games.FindAsync(id);

            viewModel.Game = new Game()
            {
            };

            var players = await _context.Players.ToListAsync();

            var playerOne = players.SingleOrDefault(p => p.Id == game.PlayerOneId);
            var playerTwo = players.SingleOrDefault(p => p.Id == game.PlayerTwoId);

            game.PlayerOne = playerOne;
            game.PlayerTwo = playerTwo;

            if (game == null)
            {
                return(NotFound());
            }
            viewModel.Game = game;

            ViewData["PhysicalTableId"] = new SelectList(_context.PhysicalTables, "Id", "Id", game.PhysicalTableId);
            ViewData["PlayerOneId"]     = new SelectList(_context.Players, "Id", "FirstName", game.PlayerOneId);
            ViewData["PlayerTwoId"]     = new SelectList(_context.Players, "Id", "FirstName", game.PlayerTwoId);
            ViewData["RoundId"]         = new SelectList(_context.Rounds, "Id", "Id", game.RoundId);
            return(View(viewModel));
        }
Beispiel #5
0
        public void SetUp()
        {
            builder = new GameResultViewModelBuilder();
            GameDefinition gameDefinition = new GameDefinition()
            {
                Id   = 15131,
                Name = "Yodle-masters 2014"
            };
            PlayedGame playedGame = new PlayedGame()
            {
                GameDefinition = gameDefinition,
                DatePlayed     = new DateTime(2014, 09, 15),
                WinnerType     = WinnerTypes.TeamWin
            };

            playerGameResult = new PlayerGameResult()
            {
                GameRank = 1,
                NemeStatsPointsAwarded = 2,
                Id       = 151,
                PlayerId = 15135,
                Player   = new Player()
                {
                    Name   = "Test Player",
                    Active = false
                },
                PlayedGameId = 1432,
                PlayedGame   = playedGame
            };

            playerGameResultDetails = builder.Build(playerGameResult);
        }
Beispiel #6
0
        public ActionResult CreateResult(GameResultViewModel gameResultViewModel)
        {
            Answer answer = new Answer()
            {
                AnimalId  = gameResultViewModel.AnimalId,
                CountryId = gameResultViewModel.CountryId
            };

            _answerRepository.Add(answer);
            _answerRepository.SaveChanges();


            string currentUserId = User.Identity.GetUserId();
            var    users         = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var    sad           = users.Users.FirstOrDefault(x => x.Id == currentUserId);

            GameResult gameResult = new GameResult()
            {
                AnswerId   = answer.Id,
                Duration   = gameResultViewModel.Duration,
                Guesses    = gameResultViewModel.Guesses,
                IsAnswered = gameResultViewModel.IsAnswered,
                UserName   = sad.UserName,
            };

            _gameResultRepository.Add(gameResult);
            _gameResultRepository.SaveChanges();
            return(Json(gameResult, JsonRequestBehavior.AllowGet));
        }
Beispiel #7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="GameResultViewModelBuilder"/> class
 /// </summary>
 public GameResultViewModelBuilder()
 {
     _gameResultsViewModel = new GameResultViewModel()
     {
         HomeTeamId   = 1,
         AwayTeamId   = 2,
         HomeTeamName = "HomeTeam",
         AwayTeamName = "AwayTeam",
         GameDate     = DateTime.Parse("2016-04-03 10:00"),
         Round        = 1,
         GameNumber   = 0,
         GameScore    = new ScoreViewModel(3, 1),
         SetScores    = new List <ScoreViewModel>()
         {
             new ScoreViewModel(27, 25),
             new ScoreViewModel(33, 31),
             new ScoreViewModel(27, 25),
             new ScoreViewModel(24, 26),
             new ScoreViewModel(),
         },
         IsTechnicalDefeat = false,
         TournamentId      = 1,
         UrlToGameVideo    = "http://test-url-a.com",
     };
 }
Beispiel #8
0
        // GET: Medals
        public ActionResult Index()
        {
            // http://stackoverflow.com/a/13846627

            GameResultViewModel viewModel = new GameResultViewModel();

            viewModel.GameResultMedals = db.EventCompetitors
                                         .Include(c => c.Competitor)
                                         .GroupBy(c => c.Competitor.competitorCountry)
                                         .Select(r => new GameResultMedals {
                Country = r.Key, Gold = r.Count(a => a.competitorMedal == "Gold"),
                Silver  = r.Count(a => a.competitorMedal == "Silver"),
                Bronze  = r.Count(a => a.competitorMedal == "Bronze"),
                Total   = r.Count(a => a.competitorMedal != "None")
            })
                                         .OrderByDescending(a => a.Total)
                                         .ThenBy(a => a.Country).ToList();

            viewModel.GameResultRecords = db.EventCompetitors
                                          .Include(c => c.Competitor)
                                          .Include(c => c.Event)
                                          .Where(ec => ec.Event.worldRecord == true && ec.competitorMedal == "Gold")
                                          .Select(r => new GameResultRecords {
                CompetitorName = r.Competitor.competitorName,
                Game           = r.Event.Game.gameName
            })
                                          .OrderBy(a => a.CompetitorName).ToList();

            return(View(viewModel));
        }
Beispiel #9
0
        public GameResultViewModel Add(GameResultViewModel obj)
        {
            var GameResult = MapperGameResultToModel(obj);

            GameResult = _GameResultServico.Add(GameResult);
            _GameResultServico.Commit();
            return(MapperGameResultToViewModel(GameResult));
        }
Beispiel #10
0
        /// <summary>
        /// Renders a view with empty fields of game result for create operation.
        /// </summary>
        /// <param name="tournamentId">Identifier of the tournament where game result belongs.</param>
        /// <returns>View with empty fields of game result.</returns>
        public ActionResult Create(int tournamentId)
        {
            var gameResultViewModel = new GameResultViewModel {
                TournamentId = tournamentId,
            };

            return(View(gameResultViewModel));
        }
        private GameResult GetGameResultObj(GameResultViewModel gameResultViewModel, Gamer gamer)
        {
            var result = Mapper.Map <GameResult>(gameResultViewModel);

            result.Gamer     = _gamerService.GetGamer(Guid.Parse(gameResultViewModel.GamerId));
            result.BoardGame = _boardGameService.Get(gameResultViewModel.BoardGameId);
            Mapper.Map(gamer, result);
            return(result);
        }
Beispiel #12
0
        public void Map_GameResultDtoAsParam_MappedToViewModel()
        {
            // Arrange
            var testViewModel = new GameResultViewModelBuilder()
                                .WithId(1)
                                .WithTournamentId(1)
                                .WithHomeTeamId(1)
                                .WithAwayTeamId(2)
                                .WithHomeTeamName("HomeTeam")
                                .WithAwayTeamName("AwayTeam")
                                .WithSetsScore(3, 0)
                                .WithTechnicalDefeat(false)
                                .WithDate(DateTime.Parse("2016-04-12 12:15"))
                                .WithRound(1)
                                .WithSetScores(new List <ScoreViewModel>
            {
                new ScoreViewModel(25, 20),
                new ScoreViewModel(26, 24),
                new ScoreViewModel(30, 28),
                new ScoreViewModel(0, 0),
                new ScoreViewModel(0, 0),
            })
                                .Build();

            testViewModel.GameNumber = TEST_GAME_NUMBER;

            var testDomainModel = new GameResultDtoBuilder()
                                  .WithId(1)
                                  .WithTournamentId(1)
                                  .WithHomeTeamId(1)
                                  .WithAwayTeamId(2)
                                  .WithHomeTeamName("HomeTeam")
                                  .WithAwayTeamName("AwayTeam")
                                  .WithHomeSetsScore(3)
                                  .WithAwaySetsScore(0)
                                  .WithNoTechnicalDefeat()
                                  .WithHomeSet1Score(25)
                                  .WithHomeSet2Score(26)
                                  .WithHomeSet3Score(30)
                                  .WithHomeSet4Score(0)
                                  .WithHomeSet5Score(0)
                                  .WithAwaySet1Score(20)
                                  .WithAwaySet2Score(24)
                                  .WithAwaySet3Score(28)
                                  .WithAwaySet4Score(0)
                                  .WithAwaySet5Score(0)
                                  .WithDate(DateTime.Parse("2016-04-12 12:15"))
                                  .WithRound(1)
                                  .Build();

            testDomainModel.GameNumber = TEST_GAME_NUMBER;
            // Act
            var actual = GameResultViewModel.Map(testDomainModel);

            // Assert
            TestHelper.AreEqual <GameResultViewModel>(testViewModel, actual, new GameResultViewModelComparer());
        }
Beispiel #13
0
        public static MvcHtmlString GameResults(this HtmlHelper htmlHelper, GameResultViewModel playerGameResultDetails, WinnerTypes?winnerType)
        {
            Validate(playerGameResultDetails);

            string cssPlace;
            string gameRankText;

            if (winnerType == WinnerTypes.TeamWin)
            {
                cssPlace     = CSS_CLASS_TEAM_WIN;
                gameRankText = PLACE_TEAM_WIN;
            }
            else if (winnerType == WinnerTypes.TeamLoss)
            {
                cssPlace     = CSS_CLASS_TEAM_LOSS;
                gameRankText = PLACE_EVERYONE_LOST;
            }
            else
            {
                switch (playerGameResultDetails.GameRank)
                {
                case 1:
                    cssPlace     = CSS_CLASS_FIRST_PLACE;
                    gameRankText = PLACE_FIRST;
                    break;

                case 2:
                    cssPlace     = CSS_CLASS_SECOND_PLACE;
                    gameRankText = PLACE_SECOND;
                    break;

                case 3:
                    cssPlace     = CSS_CLASS_THIRD_PLACE;
                    gameRankText = PLACE_THIRD;
                    break;

                case 4:
                    cssPlace     = CSS_CLASS_FOURTH_PLACE;
                    gameRankText = PLACE_FOURTH;
                    break;

                default:
                    cssPlace     = CSS_CLASS_LOSER_PLACE;
                    gameRankText = PLACE_BIG_LOSER;
                    break;
                }
            }


            string nemeStatsPointsComponent = string.Format(HTML_GORDON_POINTS_TEMPLATE, playerGameResultDetails.NemeStatsPointsAwarded, htmlHelper.NemePointsIco(showTooltip: true, tooltip: NEMEPOINTICO_TOOLTIP, tooltipPosition: NEMEPOINTSICO_TOOLTIP_POSITION));

            return(MvcHtmlString.Create(string.Format(HTML_TEMPLATE,
                                                      CSS_CLASS_GAME_RANK,
                                                      cssPlace,
                                                      gameRankText,
                                                      nemeStatsPointsComponent)));
        }
        public void PlayersNumberPasses(int playersNumber, int place)
        {
            var gameResult = new GameResultViewModel
            {
                PlayersNumber = playersNumber,
                Place         = place
            };

            _gameResultValidator.ShouldNotHaveValidationErrorFor(x => x.PlayersNumber, gameResult);
        }
Beispiel #15
0
 public static Bet MapGameResultViewModelToBet(GameResultViewModel gameResultViewModel, int userBetId)
 {
     return(new Bet
     {
         HomeGoals = gameResultViewModel.HomeGoals,
         AwayGoals = gameResultViewModel.AwayGoals,
         Result = GetGameResult(gameResultViewModel.HomeGoals, gameResultViewModel.AwayGoals),
         GameId = gameResultViewModel.Id,
         UserBetId = userBetId
     });
 }
        public JsonResult Edit(GameResultViewModel model)
        {
            if (!(Session["gamer"] is Gamer))
            {
                return(Json(Errors.GamerNotLoggedIn, JsonRequestBehavior.AllowGet));
            }
            var gameResult = Mapper.Map <GameResult>(model);

            _gameResultService.EditGameResult(gameResult);

            return(Json(null, JsonRequestBehavior.AllowGet));
        }
Beispiel #17
0
        public async Task <IActionResult> Edit(int id, GameResultViewModel viewModel)
        {
            //if (id != game.Id)
            //{
            //    return NotFound();
            //}

            var players = await _context.Players.ToListAsync();

            if (viewModel.Result == 1)
            {
                viewModel.Game.PlayerOneScore = 1;
                viewModel.Game.PlayerTwoScore = 0;
            }
            else if (viewModel.Result == 2)
            {
                viewModel.Game.PlayerOneScore = 0;
                viewModel.Game.PlayerTwoScore = 1;
            }
            else if (viewModel.Result == 3)
            {
                viewModel.Game.PlayerOneScore = 0.5;
                viewModel.Game.PlayerTwoScore = 0.5;
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(viewModel.Game);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!GameExists(viewModel.Game.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("IndexUncompleted"));
                //return RedirectToAction(nameof(Index));
            }
            ViewData["PhysicalTableId"] = new SelectList(_context.PhysicalTables, "Id", "Id", viewModel.Game.PhysicalTableId);
            ViewData["PlayerOneId"]     = new SelectList(_context.Players, "Id", "FirstName", viewModel.Game.PlayerOneId);
            ViewData["PlayerTwoId"]     = new SelectList(_context.Players, "Id", "FirstName", viewModel.Game.PlayerTwoId);
            ViewData["RoundId"]         = new SelectList(_context.Rounds, "Id", "Id", viewModel.Game.RoundId);
            return(RedirectToAction("IndexUncompleted"));
        }
Beispiel #18
0
        /// <summary>
        /// Gets the view for view model of the schedule with specified identifier.
        /// </summary>
        /// <param name="tournamentId">Identifier of the tournament.</param>
        /// <returns>View for view model of the schedule with specified identifier.</returns>
        public ActionResult ShowSchedule(int tournamentId)
        {
            var tournament = _tournamentService.GetTournamentScheduleInfo(tournamentId);

            if (tournament == null)
            {
                ModelState.AddModelError("LoadError", TournamentController.TournamentNotFound);
                return(View());
            }

            var scheduleViewModel = new ScheduleViewModel
            {
                TournamentId      = tournament.Id,
                TournamentName    = tournament.Name,
                TournamentScheme  = tournament.Scheme,
                MaxNumberOfRounds = tournament.Divisions.Max(d => d.NumberOfRounds),
                Rounds            = _gameService.GetTournamentGames(tournamentId)
                                    .GroupBy(d => d.Round)
                                    .ToDictionary(
                    d => d.Key,
                    c => c.OrderBy(t => t.GameNumber).ThenBy(t => t.GameDate)
                    .Select(x => GameResultViewModel.Map(x)).ToList()),
                AllowedOperations = _authService.GetAllowedOperations(new List <AuthOperation>()
                {
                    AuthOperations.Games.Create,
                    AuthOperations.Games.Edit,
                    AuthOperations.Games.Delete,
                    AuthOperations.Games.SwapRounds,
                    AuthOperations.Games.EditResult
                })
            };

            if (tournament.Scheme == TournamentSchemeEnum.PlayOff)
            {
                FillRoundNames(scheduleViewModel);
            }

            for (byte i = 0; i < scheduleViewModel.Rounds.Count; i++)
            {
                foreach (var game in scheduleViewModel.Rounds.ElementAt(i).Value)
                {
                    game.AllowedOperations = _authService.GetAllowedOperations(new List <AuthOperation>()
                    {
                        AuthOperations.Games.Edit,
                        AuthOperations.Games.Delete,
                        AuthOperations.Games.EditResult
                    });
                }
            }

            return(View(scheduleViewModel));
        }
        /// <summary>
        /// Renders a view with filled in fields of game result for edit operation.
        /// </summary>
        /// <param name="id">Identifier of the game result.</param>
        /// <returns>View with filled in fields of game result.</returns>
        public ActionResult Edit(int id)
        {
            var gameResult = _gameService.Get(id);

            if (gameResult == null)
            {
                return(HttpNotFound());
            }

            var gameResultsViewModel = GameResultViewModel.Map(gameResult);

            return(View(gameResultsViewModel));
        }
Beispiel #20
0
        public void ItRendersTheGameRankInASpanWithTheGameRankClass()
        {
            HtmlHelper          helper = new HtmlHelper(new ViewContext(), new ViewPage());
            GameResultViewModel playerGameResultDetails = new GameResultViewModel()
            {
                GameRank = 1151
            };

            XElement result = helper.GameResults(playerGameResultDetails, WinnerTypes.PlayerWin).ToXElement();

            Assert.AreEqual("span", result.Name.ToString());
            Assert.True(result.FirstAttribute.ToString().Contains("class=\"" + PlayedGameHelper.CSS_CLASS_GAME_RANK));
        }
Beispiel #21
0
        public void ItRendersNemeStatsPoints()
        {
            HtmlHelper          helper = new HtmlHelper(new ViewContext(), new ViewPage());
            GameResultViewModel playerGameResultDetails = new GameResultViewModel()
            {
                NemeStatsPointsAwarded = 9
            };

            XElement result = helper.GameResults(playerGameResultDetails, WinnerTypes.PlayerWin).ToXElement();

            string firstNodeText = result.FirstNode.ToString();

            Assert.True(firstNodeText.Contains(playerGameResultDetails.NemeStatsPointsAwarded.ToString()));
        }
        public ActionResult Create(GameResultViewModel gameResultViewModel)
        {
            var gameResult = gameResultViewModel.ToDomain();

            try
            {
                _gameService.Create(gameResult);
                return(RedirectToAction("Details", "Tournaments", new { id = gameResultViewModel.TournamentId }));
            }
            catch (ArgumentException ex)
            {
                ModelState.AddModelError("ValidationMessage", ex.Message);
                return(View(gameResultViewModel));
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="ScheduleViewModelBuilder"/> class
 /// </summary>
 public ScheduleViewModelBuilder()
 {
     _scheduleViewModel = new ScheduleViewModel()
     {
         TournamentId      = 1,
         TournamentName    = "Name",
         TournamentScheme  = TournamentSchemeEnum.One,
         MaxNumberOfRounds = 3,
         Rounds            = new GameServiceTestFixture().TestGameResults()
                             .Build().GroupBy(d => d.Round)
                             .ToDictionary(
             d => d.Key,
             c => c.OrderBy(t => t.GameDate)
             .Select(x => GameResultViewModel.Map(x)).ToList())
     };
 }
Beispiel #24
0
 public IHttpActionResult Post([FromBody] GameResultViewModel GameResultViewModel)
 {
     try
     {
         GameResultViewModel.SetServidorCod(GetIdServidor());
         return(Ok(_GameResultAppServico.Add(GameResultViewModel)));
     }
     catch (Exception e)
     {
         if (e.InnerException != null)
         {
             return(BadRequest(e.InnerException.Message));
         }
         return(BadRequest(e.Message));
     }
 }
        public IActionResult Results(string id)
        {
            List <GameResultViewModel> gameResultViewModel = new List <GameResultViewModel>();

            Poule       poule = _pouleRepository.Get(Convert.ToInt32(id));
            List <Game> games = poule.Games.Where(a => a.PouleId == Convert.ToInt32(id)).ToList();

            foreach (Game g in games)
            {
                GenerateGameResult(g.Id);
            }



            foreach (Game g in games)
            {
                GenerateGameResult(g.Id);

                GameResultViewModel gameResult = gameResultViewModel.Find(a => a.TeamId == g.HomeTeamId);
                if (gameResult != null)
                {
                    gameResult.Points         += (g.HomeScore.Value > g.AwayScore.Value) ? 3 : (g.HomeScore.Value < g.AwayScore.Value) ? 0 : 1;
                    gameResult.GoalsFor       += g.HomeScore.Value;
                    gameResult.GoalsAgainst   += g.AwayScore.Value;
                    gameResult.GoalDifference += g.HomeScore.Value - g.AwayScore.Value;
                }
                else
                {
                    gameResultViewModel.Add(
                        new GameResultViewModel()
                    {
                        TeamId         = g.HomeTeamId,
                        TeamName       = g.HomeTeam.Name,
                        Points         = (g.HomeScore.Value > g.AwayScore.Value) ? 3 : (g.HomeScore.Value < g.AwayScore.Value) ? 0 : 1,
                        GoalsFor       = g.HomeScore.Value,
                        GoalsAgainst   = g.AwayScore.Value,
                        GoalDifference = g.HomeScore.Value - g.AwayScore.Value
                    }
                        );
                }
            }


            ViewBag.Games = games;

            return(View(gameResultViewModel.OrderByDescending(a => a.Points).ThenByDescending(a => a.GoalDifference).ThenByDescending(a => a.GoalsFor).ThenBy(a => a.GoalsAgainst).ToList()));
        }
        public void CreateGetAction_GameResultViewModelRequested_GameResultViewModelIsReturned()
        {
            // Arrange
            _teamServiceMock.Setup(ts => ts.Get()).Returns(new List <Team>());
            var expected = new GameResultViewModel
            {
                TournamentId = TOURNAMENT_ID
            };

            var controller = BuildSUT();

            // Act
            var actual = TestExtensions.GetModel <GameResultViewModel>(controller.Create(TOURNAMENT_ID));

            // Assert
            TestHelper.AreEqual <GameResultViewModel>(expected, actual, new GameResultViewModelComparer());
        }
Beispiel #27
0
        private void TestRenderingForGivenRank(int gameRank, WinnerTypes winnerType, string expectedCssClass, string expectedRankText)
        {
            HtmlHelper          helper = new HtmlHelper(new ViewContext(), new ViewPage());
            GameResultViewModel playerGameResultDetails = new GameResultViewModel()
            {
                GameRank = gameRank
            };

            XElement result = helper.GameResults(playerGameResultDetails, winnerType).ToXElement();

            string firstAttribute = result.FirstAttribute.ToString();

            StringAssert.Contains("class=\"", firstAttribute);
            StringAssert.Contains(expectedCssClass, firstAttribute);
            string firstNodeText = result.FirstNode.ToString();

            StringAssert.StartsWith(expectedRankText, firstNodeText);
        }
        public JsonResult Add(GameResultViewModel gameResultViewModel)
        {
            if (ModelState.IsValid)
            {
                if (!(Session["gamer"] is Gamer gamer))
                {
                    return(Json(Errors.GamerNotLoggedIn, JsonRequestBehavior.AllowGet));
                }

                var gameResultDto = Mapper.Map <GameResultDto>(gameResultViewModel);
                _gameResultService.AddGameResult(gameResultDto, gamer);

                return(Json(null, JsonRequestBehavior.AllowGet));
            }

            var errors = Helpers.GetErrorMessages(ModelState.Values);

            return(Json(errors, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Edit(GameResultViewModel gameResultViewModel)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    var gameResult = gameResultViewModel.ToDomain();
                    _gameService.EditGameResult(gameResult);
                    return(RedirectToAction("ShowSchedule", "Tournaments", new { tournamentId = gameResultViewModel.TournamentId }));
                }
            }
            catch (MissingEntityException)
            {
                ModelState.AddModelError(string.Empty, Resources.UI.GameResultsController.GameResultWasDeleted);
            }
            catch (ArgumentException)
            {
                ModelState.AddModelError(string.Empty, Resources.UI.GameResultsController.GameResultNotEdited);
            }

            return(View(gameResultViewModel));
        }
        public async Task <IHttpActionResult> PostGameResult(GameResultViewModel gameResultData)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user    = _db.Users.Find(User.Identity.GetUserId());
            var network = await _db.NeuralNetworks
                          .SingleOrDefaultAsync(x => x.Generation == gameResultData.Generation);

            var gameResult = new GameResult
            {
                User    = user,
                Network = network,
                Score   = gameResultData.Score
            };

            _db.GameResults.Add(gameResult);
            await _db.SaveChangesAsync();

            return(Ok());
        }