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