Exemplo n.º 1
0
        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)));
        }
Exemplo n.º 2
0
        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()));
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public void CanRent_ToManyRentals_False()
        {
            var rentals = new List <Rental>
            {
                new Rental(),
                new Rental(),
                new Rental()
            };

            var result = ShopUserService.CanRent(rentals);

            Assert.False(result);
        }
Exemplo n.º 5
0
        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);
        }