private async Task <FavouritesUserBooks> GetBookFromFav(BookAndUserIds bAndUsId) { var user = await ctx.Users.Where(uf => uf.IdUser == bAndUsId.idUser) .FirstOrDefaultAsync(); return(await ctx.Entry(user) .Collection(u => u.FavouritesUserBooks) .Query() .Where(uFav => uFav.IdBook == bAndUsId.idBook) .SingleOrDefaultAsync()); }
public async Task <int> RemoveBookToUserFavourites(BookAndUserIds bookAndUser) { var favToRemove = await GetBookFromFav(bookAndUser); if (favToRemove != null) { ctx.Remove(favToRemove); return(await ctx.SaveChangesAsync()); } return(0); }
public async Task <int> BorrowBook(BookAndUserIds bookAndUser) { var isAlreadyLoaned = await ctx.Loans .Where(l => l.UserId == bookAndUser.idUser && l.BookId == bookAndUser.idBook && l.DateReturn == null) .SingleOrDefaultAsync(); if (isAlreadyLoaned == null) { var actualDate = DateTime.Now; ctx.Loans.Add(new Loan(0, actualDate, bookAndUser.idBook, bookAndUser.idUser)); return(await ctx.SaveChangesAsync()); } return(0); }
public async Task <int> AddBookToUserFavourites(BookAndUserIds bookAndUser) { var isPresent = await GetBookFromFav(bookAndUser); if (isPresent == null) { var userToUpdate = await ctx.Users.Where(u => u.IdUser == bookAndUser.idUser).SingleOrDefaultAsync(); userToUpdate.FavouritesUserBooks.Add(new FavouritesUserBooks(bookAndUser.idUser, bookAndUser.idBook)); return(await ctx.SaveChangesAsync()); } else { return(0); } }
public async Task <bool> BorrowBook(BookAndUserIds bookAndUser) { return(await this.unitOfWork.BorrowBook(bookAndUser)); }
public async Task <int> RemoveBookToUserFavourites(BookAndUserIds bookAndUser) { return(await this.unitOfWork.RemoveBookToUserFavourites(bookAndUser)); }