public async Task <IActionResult> Register([FromBody] RegisterRequest request) { var userWithRequestedEmail = await UserManager.FindByEmailAsync(request.Email); if (userWithRequestedEmail != null) { return(BadRequest(ApiResponse.Failure("Email", this.UserExistsMessage(request.Email)))); } var registerResult = await AuthService.Register(request, RolesEnum.User); if (registerResult == null) { return(BadRequest(ApiResponse.Failure("Register", "Something went wrong"))); } if (request.AddressAdded) { var addressToAdd = request.Address; addressToAdd.UserId = registerResult.Id; await AddressService.CreateAddress(addressToAdd); } await ShopUserService.AddShopUser(new ShopUserAddRequest { CanBorrow = true, UserId = registerResult.Id }); return(CreatedAtRoute(UsersNames.GetUserBaseInfo, new { id = registerResult.Id, controller = UsersNames.Controller }, ApiResponse <UserBaseInfo> .Success(registerResult))); }
public async Task <IActionResult> RentCartridge(Guid cartridgeId, Guid userId, [FromBody] CartridgeRentRequest request) { var canUserRent = await ShopUserService.CanUserRent(userId); if (canUserRent == null) { return(BadRequest(ApiResponse.Failure("Null", "User does not seem to exist"))); } if (!canUserRent.Value) { return(BadRequest(ApiResponse.Failure("CantRent", "User cannot rent"))); } var rentalResult = await RentalService.RentCartridge(cartridgeId, userId, request); if (rentalResult == null) { return(BadRequest(ApiResponse.Failure("Null", "Cartridge or selected address does not seemt to exist"))); } if (!rentalResult.Value) { return(BadRequest(ApiResponse.Failure("NoCopies", "No copies avaible"))); } return(Ok(ApiResponse.Success())); }
public void CanRent_OutDatedRental_False() { var rentals = new List <Rental> { new Rental { Rented = new DateTime(1999, 1, 1) }, }; var result = ShopUserService.CanRent(rentals); Assert.False(result); }
public void CanRent_ToManyRentals_False() { var rentals = new List <Rental> { new Rental(), new Rental(), new Rental() }; var result = ShopUserService.CanRent(rentals); Assert.False(result); }
public void CanRent_TwoRentals_True() { var rentals = new List <Rental> { new Rental { Rented = new DateTime(3000, 1, 1) }, new Rental { Rented = new DateTime(3000, 1, 1) } }; var result = ShopUserService.CanRent(rentals); Assert.True(result); }