private void NotifyPlayers(ICollection <TeamPlayer> players, Game game) { foreach (var player in players) { var message = $"Играем в {game.DateTime}. Ты в команде {player.TeamNumber}"; _userInteractionService.SendMessage(message, player.Player.User); } }
private void NotifyAboutUnsuccessfulCollecting(Game game, List <BotUser> administrators) { var deadlineTime = game.DateTime.Subtract(_serviceConfiguration.GameDeadline, _serviceConfiguration.StartDayTime, _serviceConfiguration.EndDayTime); var message = $"Команда не набралась({game.AcceptedPlayers.Count} из {_serviceConfiguration.PlayersPerTeam * 2}). \n" + "Дальнейший сбор осуществляй вручную, используя команду - /addplayertogame. " + $"Или отмени матч командой - /cancelgame. \nВ {deadlineTime.ToString(DateTimeHelper.DateFormat)} игра отменится автоматически"; administrators.ForEach(x => _userInteractionService.SendMessage(message, x)); }
private void NotifyAboutSuccessfulCollecting(Game game, ICollection <TeamPlayer> distributedPlayers, List <BotUser> administrators) { var message = $"Игра {game.DateTime.ToString(DateTimeHelper.DateFormat)}.\n"; foreach (var team in distributedPlayers.GroupBy(x => x.TeamNumber)) { message += $"\nКоманда {team.First().TeamNumber}\n"; foreach (var x in team.Select((value, i) => new { i, value })) { message += $"{(x.i + 1).ToString()}. {x.value.Player.User.FirstName} {x.value.Player.User.LastName}"; } message += $"\n"; } administrators.ForEach(x => _userInteractionService.SendMessage(message, x)); }
private void DistributePlayersPerTeams(Game game) { var teams = GameHelper.GetTeams(game.AcceptedPlayers, _serviceConfiguration.PlayersPerTeam); game.DistributedPlayers = teams.firstTeam .Select(x => new TeamPlayer() { Id = Guid.NewGuid(), Player = x, TeamNumber = 1 }) .Concat( teams.secondTeam.Select(x => new TeamPlayer() { Id = Guid.NewGuid(), Player = x, TeamNumber = 2 })) .ToList(); }