예제 #1
0
        public async Task <ClubPlayer> CreateClubPlayerAsync(Guid clubId, Guid playerId)
        {
            ClubPlayer clubPlayer = await _clubPlayerRepository.FindAsync(x =>
                                                                          x.ClubId == clubId && x.PlayerId == playerId);

            if (clubPlayer != null)
            {
                throw new BusinessException(SnookerDomainErrorCodes.ClubPlayers.PlayerAlreadyLinkedToClub);
            }

            return(new ClubPlayer(GuidGenerator.Create(), clubId, playerId));
        }
예제 #2
0
        public async Task AddPlayerAsync()
        {
            // Arrange
            Guid clubId   = Guid.Parse("51b646da-9b05-454a-8fed-39371f1c6710");
            Guid playerId = Guid.Parse("7b0b86ff-df6b-4b5f-8f6c-a226d00949cc");

            // Act
            ClubPlayerDto serviceResult = await _clubsAppService.AddPlayerAsync(clubId, playerId);

            // Assert
            ClubPlayer result = await _clubPlayerRepository.FindAsync(x => x.Id == serviceResult.Id);

            result.ShouldNotBe(null);
            result.ClubId.ShouldBe(clubId);
            result.PlayerId.ShouldBe(playerId);
            result.IsPrimaryClubOfPlayer.ShouldBe(false);
        }
예제 #3
0
        public virtual async Task <ClubDto> GetClubAsync(Guid id)
        {
            ClubPlayer clubPlayer = await _clubPlayerRepository.FindAsync(x => x.PlayerId == id && x.IsPrimaryClubOfPlayer);

            if (clubPlayer == null)
            {
                return(null);
            }

            IQueryable <Club> clubQueryable = await _clubRepository.GetQueryableAsync();

            IQueryable <ClubDto> clubDtoQueryable = ObjectMapper
                                                    .GetMapper()
                                                    .ProjectTo <ClubDto>(clubQueryable.Where(x => x.Id == clubPlayer.ClubId));

            return(await AsyncExecuter.FirstOrDefaultAsync(clubDtoQueryable));
        }