Exemple #1
0
        public async Task <IActionResult> OnPostAsync()
        {
            var borrowToRegister = new BorrowDTO();
            var doesPlayerExist  = await _playerService.DoesPlayerExistAsync(Borrow.PlayerId);

            var doesBoxExist = await _boxService.DoesBoxExistAsync(Borrow.BoxId);

            var boxIsRented = await _borrowService.IsBoxRentedAsync(Borrow.BoxId);

            if (!doesPlayerExist && !doesBoxExist)
            {
                ToastMessage = _locService.GetLocalizedString("Both codes are unregistered!");
                ToastType    = "error";
                return(Page());
            }
            else if (!doesPlayerExist)
            {
                ToastMessage = _locService.GetLocalizedString("Player with that code is not registered!");
                ToastType    = "error";
                return(Page());
            }
            else if (!doesBoxExist)
            {
                ToastMessage = _locService.GetLocalizedString("Game (box) with that code is not registered!");
                ToastType    = "error";
                return(Page());
            }

            if (boxIsRented)
            {
                ToastMessage = _locService.GetLocalizedString("Game (box) already marked as rented. Check the code!");
                ToastType    = "error";
                return(Page());
            }

            if (await TryUpdateModelAsync <BorrowDTO>(
                    borrowToRegister,
                    "borrow",
                    r => r.PlayerId, r => r.BoxId))
            {
                borrowToRegister.BorrowTime = DateTime.UtcNow;
                await _borrowService.AddBorrowAsync(borrowToRegister);

                ToastMessage = _locService.GetLocalizedString("Record added");
                ToastType    = "success";
                return(RedirectToPage("./Lend"));
            }

            ToastMessage = _locService.GetLocalizedString("Error! Please try again!");
            ToastType    = "error";
            return(Page());
        }
Exemple #2
0
        public async Task AddBorrowAsync_addsNewBorrow()
        {
            // Arrange:
            var borrowDTOtoAdd = new BorrowDTO {
                BoxId = 1, PlayerId = 1
            };
            var service = new BorrowService(Context, _mapper);

            // Act:
            await service.AddBorrowAsync(borrowDTOtoAdd);

            // Assert:
            var addedBorrow = await Context.Borrows.FirstOrDefaultAsync(x => x.PlayerId == 1 && x.BoxId == 1 && x.Returned == false);

            Assert.Equal(addedBorrow.BoxId, borrowDTOtoAdd.BoxId);
            Assert.Equal(addedBorrow.PlayerId, borrowDTOtoAdd.PlayerId);
            Assert.True(await Context.Borrows.CountAsync() == 5);
        }