示例#1
0
        public async Task EditMatchGeneralAttributesCommand_Test()
        {
            var matchId = await MatchModule.ExecuteCommandAsync(new CreateMatchCommand(
                                                                    MatchSampleData.Name,
                                                                    MatchSampleData.HomeTeamId,
                                                                    MatchSampleData.AwayTeamId,
                                                                    MatchSampleData.UtcDate,
                                                                    MatchSampleData.Status,
                                                                    MatchSampleData.Score,
                                                                    MatchSampleData.Season,
                                                                    MatchSampleData.ExternalId));

            await MatchModule.ExecuteCommandAsync(new EditMatchGeneralAttributesCommand(
                                                      matchId,
                                                      EditMatchSampleData.NewName,
                                                      EditMatchSampleData.NewUtcDate,
                                                      EditMatchSampleData.NewScore,
                                                      EditMatchSampleData.NewSeason,
                                                      EditMatchSampleData.NewStatus));

            var match = await MatchModule.ExecuteQueryAsync(new GetMatchByIdQuery(matchId));

            Assert.That(match.Name, Is.EqualTo(EditMatchSampleData.NewName));
            Assert.That(match.UtcDate, Is.EqualTo(EditMatchSampleData.NewUtcDate));
            Assert.That(match.ScoreWinner, Is.EqualTo(EditMatchSampleData.NewScore.Winner));
            Assert.That(match.ScoreHomeTeam, Is.EqualTo(EditMatchSampleData.NewScore.HomeTeam));
            Assert.That(match.ScoreAwayTeam, Is.EqualTo(EditMatchSampleData.NewScore.AwayTeam));
            Assert.That(match.Season, Is.EqualTo(EditMatchSampleData.NewSeason));
            Assert.That(match.Status, Is.EqualTo(EditMatchSampleData.NewStatus));
        }
示例#2
0
        public async Task CreateTeamCommand_Test()
        {
            var teamId = await MatchModule.ExecuteCommandAsync(new CreateTeamCommand(
                                                                   TeamSampleData.Name,
                                                                   TeamSampleData.Description,
                                                                   TeamSampleData.Logo,
                                                                   TeamSampleData.Manager,
                                                                   TeamSampleData.League,
                                                                   TeamSampleData.Country,
                                                                   TeamSampleData.FormedYear,
                                                                   TeamSampleData.Facebook,
                                                                   TeamSampleData.Instagram,
                                                                   TeamSampleData.Stadium,
                                                                   TeamSampleData.ExternalId));

            var team = await MatchModule.ExecuteQueryAsync(new GetTeamQuery(teamId));

            Assert.That(team.Name, Is.EqualTo(TeamSampleData.Name));
            Assert.That(team.Description, Is.EqualTo(TeamSampleData.Description));
            Assert.That(team.Logo, Is.EqualTo(TeamSampleData.Logo));
            Assert.That(team.Manager, Is.EqualTo(TeamSampleData.Manager));
            Assert.That(team.League, Is.EqualTo(TeamSampleData.League));
            Assert.That(team.Country, Is.EqualTo(TeamSampleData.Country));
            Assert.That(team.FormedYear, Is.EqualTo(TeamSampleData.FormedYear));
            Assert.That(team.Facebook, Is.EqualTo(TeamSampleData.Facebook));
            Assert.That(team.Instagram, Is.EqualTo(TeamSampleData.Instagram));
            Assert.That(team.StadiumName, Is.EqualTo(TeamSampleData.Stadium.Name));
            Assert.That(team.StadiumDescription, Is.EqualTo(TeamSampleData.Stadium.Description));
            Assert.That(team.StadiumLocation, Is.EqualTo(TeamSampleData.Stadium.Location));
            Assert.That(team.ExternalId, Is.EqualTo(TeamSampleData.ExternalId));
        }
示例#3
0
        public IDictionary <ModuleType, IModule> CreateModules()
        {
            Cmcl.Fixtures = CmclFixtures;
            Cmcl.Places   = CmclPlaces;

            var playersModule = new PlayersModule(Configuration.GameEngine, Players, Teams);

            //	Need to create just a Teams list object. Selecting the Teams Module has to refresh the potentially changed team.
            foreach (var team in Teams.Values)
            {
                team.Players      = new List <Player>(Players.Where(p => p.TeamName == team.TeamName));
                team.Formation[0] = team.Players[0];
                team.Formation[1] = team.Players[1];
            }
            var teamModule = new TeamModule(Teams);

            var competitionModule = new CompetitionsModule(new[] { Cmcl });
            var fixturesModule    = new FixturesModule(competitionModule.Competitions);
            var matchModule       = new MatchModule(new [] { Cmcl });

            Config.Configuration.GlobalWeek = () => Competition.GlobalWeek(new[] { Cmcl });

            return(new Dictionary <ModuleType, IModule>
            {
                { ModuleType.Team, teamModule },
                { ModuleType.SelectTeam, teamModule },
                { ModuleType.Fixtures, fixturesModule },
                { ModuleType.Competitions, competitionModule },
                { ModuleType.Match, matchModule },
                { ModuleType.Players, playersModule }
            });
        }
示例#4
0
文件: TimerModule.cs 项目: arnabp/BPR
    private async Task CheckQueueMatchCreate1sAsync(IMessageChannel thisChannel, string region)
    {
        List <Player> playersInQueue = new List <Player>(10);
        string        query          = $"SELECT id, username, tier FROM queue{region}1 ORDER BY tier DESC;";
        await Globals.conn.OpenAsync();

        try
        {
            MySqlCommand    cmd    = new MySqlCommand(query, Globals.conn);
            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Player thisPlayer = new Player
                {
                    id       = reader.GetUInt64(0),
                    username = reader.GetString(1),
                    tier     = reader.GetInt16(2)
                };

                playersInQueue.Add(thisPlayer);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
            await Globals.conn.CloseAsync();

            throw;
        }
        await Globals.conn.CloseAsync();

        while (playersInQueue.Count > 0)
        {
            Player thisPlayer = playersInQueue[0];
            playersInQueue.RemoveAt(0);
            Player checkPlayer;
            for (int i = 0; i < playersInQueue.Count; i++)
            {
                checkPlayer = playersInQueue[i];
                if ((thisPlayer.tier & checkPlayer.tier) > 0)
                {
                    await MatchModule.CreateMatch1Async(thisChannel, thisPlayer, checkPlayer, region);

                    playersInQueue.Remove(checkPlayer);
                    i--;
                    break;
                }
            }
        }
    }
示例#5
0
文件: TimerModule.cs 项目: arnabp/BPR
    private async Task CheckQueueMatchCreate2sAsync(IMessageChannel thisChannel, string region)
    {
        List <Player> playersInQueue = new List <Player>(20);
        List <Team>   teamsInQueue   = new List <Team>(10);
        string        query          = $"SELECT id, username, tier, tierTeammate FROM queue{region}2 ORDER BY tier DESC;";
        await Globals.conn.OpenAsync();

        try
        {
            MySqlCommand    cmd    = new MySqlCommand(query, Globals.conn);
            MySqlDataReader reader = cmd.ExecuteReader();

            while (reader.Read())
            {
                Player thisPlayer = new Player
                {
                    id           = reader.GetUInt64(0),
                    username     = reader.GetString(1),
                    tier         = reader.GetInt16(2),
                    tierTeammate = reader.GetInt16(3)
                };

                playersInQueue.Add(thisPlayer);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.ToString());
            await Globals.conn.CloseAsync();

            throw;
        }
        await Globals.conn.CloseAsync();

        while (playersInQueue.Count > 0)
        {
            Player thisPlayer = playersInQueue[0];
            playersInQueue.RemoveAt(0);
            List <Player> potentialTeammates = new List <Player>(playersInQueue.Count);
            foreach (var checkPlayer in playersInQueue)
            {
                if ((thisPlayer.tierTeammate & checkPlayer.tierTeammate) > 0)
                {
                    potentialTeammates.Add(checkPlayer);
                }
            }

            if (potentialTeammates.Count > 0)
            {
                Player teammate = potentialTeammates[Globals.rnd.Next(potentialTeammates.Count)];
                playersInQueue.Remove(teammate);
                teamsInQueue.Add(new Team {
                    p1 = thisPlayer, p2 = teammate, tier = thisPlayer.tier & teammate.tier
                });
            }
        }

        while (teamsInQueue.Count > 0)
        {
            Team thisTeam = teamsInQueue[0];
            teamsInQueue.RemoveAt(0);
            Team checkTeam;
            for (int i = 0; i < teamsInQueue.Count; i++)
            {
                checkTeam = teamsInQueue[i];
                if ((thisTeam.tier & checkTeam.tier) > 0)
                {
                    await MatchModule.CreateMatch2Async(thisChannel, thisTeam, checkTeam, region);

                    teamsInQueue.Remove(checkTeam);
                    i--;
                    break;
                }
            }
        }
    }