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