public async void ToUnLike(int num_of_likes, int bookId) { UserContext user_db = new UserContext(); var userName = User.Identity.GetUserName(); User user = await user_db.Users.FirstOrDefaultAsync(x => x.Login == userName); // UserId found LikesContext likes_db = new LikesContext(); var real_num_of_likes = likes_db.Likes.ToArray().Length; Books b = db.Books.FirstOrDefault(b => b.id == bookId); var like_to_remove = likes_db.Likes.FirstOrDefault(i => (i.user_id == user.Id) && (i.book_id == bookId)); likes_db.Remove(like_to_remove); b.likes = --num_of_likes; await db.SaveChangesAsync(); await likes_db.SaveChangesAsync(); }
public async void UpdateBooksLikes(int number, int bookId) { UserContext user_db = new UserContext(); var userName = User.Identity.GetUserName(); User user = await user_db.Users.FirstOrDefaultAsync(x => x.Login == userName); // UserId found LikesContext likes_db = new LikesContext(); var num_of_likes = likes_db.Likes.ToArray().Length; Books b = db.Books.FirstOrDefault(b => b.id == bookId); if (likes_db.Likes.FirstOrDefault(i => (i.user_id == user.Id) && (i.book_id == bookId)) == null) { // если в бд лайков не найден ни один лайк от пользователя Likes like = new Likes() { id = (++num_of_likes), book_id = bookId, user_id = user.Id }; likes_db.Likes.Add(like); b.likes = number; } else { // в бд лайков есть лайк от пользователя на заданную книгу var like_to_remove = likes_db.Likes.FirstOrDefault(i => (i.user_id == user.Id) && (i.book_id == bookId)); likes_db.Remove(like_to_remove); //Books b = db.Books.FirstOrDefault(b => b.id == bookId); b.likes = (number - 2); } await db.SaveChangesAsync(); await likes_db.SaveChangesAsync(); }