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)); }
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); }
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)); }