public async Task <User> GetUserInformationAsync(Guid userId) { if (userId == Guid.Empty) { throw new ArgumentNullException(nameof(userId)); } IEnumerable <Models.Repository.Card> dtoCards; IEnumerable <Card> cards; IEnumerable <Models.Repository.Address> dtoAddresses; var dtoUser = await userRepository.GetAsync(userId); var user = UserMapping.ConvertDtoUser(dtoUser); var cardIds = await userCardRepository.ListIdsAsync(dtoUser.UserId); var addressIds = await userAddressesRepository.ListIdsAsync(dtoUser.UserId); if (cardIds != null) { dtoCards = await cardRepository.ListAsync(cardIds); cards = await MapAddressesToCardsAsync(dtoCards); user.CreditCards = cards; } if (addressIds != null) { dtoAddresses = await addressRepository.ListAsync(addressIds); user.Address = AddressMapping.ConvertDtoAddressToAddress(dtoAddresses.FirstOrDefault()); } return(user); }
public async Task <Rental> GetRentalAsync(Guid rentalId, CancellationToken cancellationToken = default) { if (rentalId == Guid.Empty) { throw new ArgumentNullException(nameof(rentalId)); } var dtoRental = await rentalRepository.GetAsync(rentalId, cancellationToken); var dtoItemRentalDetails = await itemRentalDetailsRepository.GetAsync(dtoRental.ItemRentalDetailsId, cancellationToken); var dtoItem = itemRepository.GetAsync(dtoItemRentalDetails.ItemId, cancellationToken); var dtoUser = userRepository.GetAsync(dtoRental.UserId, cancellationToken); if (dtoRental == null) { throw new NullReferenceException(nameof(dtoRental)); } var rental = dtoRental.ConvertDtoRentalToRental(); var user = UserMapping.ConvertDtoUser(await dtoUser); var itemRentalDetails = ItemMapping.ConvertItemRentalDetails(dtoItemRentalDetails, await dtoItem); rental.User = user; rental.ItemRentalDetails = itemRentalDetails; return(rental); }
public void ConvertDtoUser() { var user = UserMapping.ConvertDtoUser(dtoUser); Assert.IsType <Models.API.User>(user); Assert.Equal(user.UserId, userId); Assert.NotNull(user.Email); Assert.NotNull(user.FirstName); Assert.NotNull(user.LastName); Assert.NotNull(user.UserName); }