예제 #1
0
        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());
        }
예제 #2
0
        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);
        }
예제 #4
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));
 }
예제 #6
0
 public async Task <int> RemoveBookToUserFavourites(BookAndUserIds bookAndUser)
 {
     return(await this.unitOfWork.RemoveBookToUserFavourites(bookAndUser));
 }