private void UpdatePlayersGoals(GameMessageModel gameMessageModel) { var team1players = _teamsRepository.FetchPlayers(gameMessageModel.Team1Name.Replace(" ", "")).ToList(); var team2players = _teamsRepository.FetchPlayers(gameMessageModel.Team2Name.Replace(" ", "")).ToList(); foreach (var scorer in gameMessageModel.Team1Scorers) { var player = team1players.Find(x => x.FullName == scorer); if (player != null) { player.Goals++; } } foreach (var scorer in gameMessageModel.Team2Scorers) { var player = team2players.Find(x => x.FullName == scorer); if (player != null) { player.Goals++; } } _teamsRepository.UpdatePlayers(team1players); _teamsRepository.UpdatePlayers(team2players); }
public void PlayGame(string group, string correlationId) { var teamsInGroup = _teamsRepository.FetchTeamsByGroup(group).Where(x => x.Games < 3).ToList(); var gamesInGroup = _teamsRepository.FetchGamesByGroup(group).ToList(); if (teamsInGroup.Count == 0) { return; } var index = _rnd.Next(teamsInGroup.Count); var team1Goals = _rnd.Next(MaxGoalsInGame); var team2Goals = _rnd.Next(MaxGoalsInGame); var team1Name = teamsInGroup[index].Name; teamsInGroup.RemoveAt(index); var team2Name = DrawOpponent(team1Name, teamsInGroup, gamesInGroup); var team1Players = _teamsRepository.FetchPlayers(team1Name.Replace(" ", "")).ToList(); var team2Players = _teamsRepository.FetchPlayers(team2Name.Replace(" ", "")).ToList(); var team1Scorers = DrawScorers(team1Players, team1Goals).ToList(); var team2Scorers = DrawScorers(team2Players, team2Goals).ToList(); _telemetryService.Log($"New result generated {team1Name}:{team2Name} {team1Goals}:{team2Goals}", correlationId); var gameMessageModel = new GameMessageModel { Group = group, Team1Name = team1Name, Team2Name = team2Name, DateOfGame = DateTime.Now, Team1Goals = team1Goals, Team2Goals = team2Goals, Team1Scorers = team1Scorers, Team2Scorers = team2Scorers, CorrelationId = correlationId }; _topicService.SendMessage(gameMessageModel); }
public TeamViewModel GetTeamDetails(string teamId) { var players = from player in _teamsRepository.FetchPlayers(teamId) where player.TeamId == teamId select new PlayerDetails() { Club = player.Club, DateOfBirth = player.DateOfBirth, FullName = player.FullName, Number = player.Number, Position = player.Position, PlayerId = player.RowKey }; return(new TeamViewModel() { Players = players.ToList() }); }