Esempio n. 1
0
        public async Task PlayersQueryForConcretePlayersAndConcreteLeaguesShouldReturnValidData()
        {
            await using (var context = _testDbFixture.PlayersContextFactory.Create())
            {
                var uow = new UnitOfWork <PlayersContext>(context);

                var query = new PlayersQuery
                {
                    Page      = 0,
                    Size      = 10,
                    QueryType = PlayersQueryType.Actual,
                    PlayerId  = new[]
                    {
                        _testDbFixture.MockedDataInstance.PlayerForFilter1,
                        _testDbFixture.MockedDataInstance.PlayerForFilter2,
                    },
                    LeagueId = new []
                    {
                        _testDbFixture.MockedDataInstance.LeagueForFilter1
                    }
                };

                var handler = new PlayersQueryHandler(uow, _mapper);
                var result  = (await handler.Handle(query, CancellationToken.None)).ToList();

                result.Count.Should().Be(query.PlayerId.Length);
                result[0].PlayerLeagueRates.Count().Should().Be(1);
                result[1].PlayerLeagueRates.Count().Should().Be(1);
            }
        }
Esempio n. 2
0
        public async Task <IEnumerable <PlayerWithRate> > GetAsync([FromQuery] PlayersQuery query)
        {
            query.PlayerId ??= Array.Empty <int>();
            query.LeagueId ??= Array.Empty <int>();

            return(await _playersService.GetAsync(query));
        }
Esempio n. 3
0
 private void LayoutForActive()
 {
     var active = PlayersQuery.IsPlayerActive(_player, _currentPlayers);
     _bgImage.enabled = active;
     _slantImage.enabled = active;
     _nameText.enabled = active;
     _scoreText.enabled = active && _gameInfo.showScores;
 }
Esempio n. 4
0
        public async Task HandleAsync(TeamsCreated @event, ICorrelationContext context)
        {
            int[] playerIds = @event.Teams.SelectMany(inner => inner).ToArray();

            var query = new PlayersQuery
            {
                LeagueId  = new [] { @event.LeagueId },
                PlayerId  = playerIds,
                QueryType = PlayersQueryType.Actual,
                Page      = 1,
                Size      = playerIds.Length
            };

            List <PlayerWithRateDto> playersInfo = (await _playersService.GetAsync(query)).ToList();

            int teamNumber = 1;

            foreach (var team in @event.Teams)
            {
                var body = CreateTeamAndRateBody(team, playersInfo, teamNumber);

                InboxNotification notification = InboxNotificationBuilder
                                                 .Create()
                                                 .WithReceiver(team)
                                                 .WithSender("Notification service")
                                                 .WithTopic($"Teams for tour: {@event.TourId} in league: {@event.LeagueId} are formed!")
                                                 .WithBody($"{body}")
                                                 .Build();

                await _busPublisher.SendAsync(notification, context);

                teamNumber++;
            }

            int[] registeredPlayers =
                (await _toursService.GetAsync(new RegisteredOnTourPlayers {
                TourId = @event.TourId
            }))
                .Select(dto => dto.InternalId)
                .ToArray();
            int[] unhappyPlayers = registeredPlayers.Except(playerIds).ToArray();

            if (unhappyPlayers.Length != 0)
            {
                InboxNotification notification = InboxNotificationBuilder
                                                 .Create()
                                                 .WithReceiver(unhappyPlayers)
                                                 .WithSender("Notification service")
                                                 .WithTopic($"Teams for tour: {@event.TourId} in league: {@event.LeagueId} are formed!")
                                                 .WithBody("Sorry you are out of the game. Try next time!")
                                                 .Build();

                await _busPublisher.SendAsync(notification, context);
            }
        }
Esempio n. 5
0
        public async Task PlayersQueryActualTypeShouldReturnData()
        {
            await using (var context = _testDbFixture.PlayersContextFactory.Create())
            {
                var uow = new UnitOfWork <PlayersContext>(context);

                var query = new PlayersQuery
                {
                    Page      = 0,
                    Size      = 10,
                    QueryType = PlayersQueryType.Actual
                };

                var handler = new PlayersQueryHandler(uow, _mapper);
                var result  = (await handler.Handle(query, CancellationToken.None)).ToList();

                result.Count.Should().Be(query.Size);
            }
        }
Esempio n. 6
0
 public async Task <IEnumerable <PlayerWithRate> > GetAsync([FromQuery] PlayersQuery query)
 {
     return(await _mediatr.Send(query));
 }