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); } }
public async Task <IEnumerable <PlayerWithRate> > GetAsync([FromQuery] PlayersQuery query) { query.PlayerId ??= Array.Empty <int>(); query.LeagueId ??= Array.Empty <int>(); return(await _playersService.GetAsync(query)); }
private void LayoutForActive() { var active = PlayersQuery.IsPlayerActive(_player, _currentPlayers); _bgImage.enabled = active; _slantImage.enabled = active; _nameText.enabled = active; _scoreText.enabled = active && _gameInfo.showScores; }
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); } }
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); } }
public async Task <IEnumerable <PlayerWithRate> > GetAsync([FromQuery] PlayersQuery query) { return(await _mediatr.Send(query)); }