public async void ToLike(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);
            // если в бд лайков не найден ни один лайк от пользователя
            Likes like = new Likes()
            {
                id      = (++real_num_of_likes),
                book_id = bookId,
                user_id = user.Id
            };

            likes_db.Likes.Add(like);

            b.likes = num_of_likes;

            await db.SaveChangesAsync();

            await likes_db.SaveChangesAsync();
        }
Пример #2
0
        public async Task <ActionResult <Like> > CreateLike([FromBody] Like like)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (await context.Likes.FirstOrDefaultAsync(l => like.Equals(l)) != null)
            {
                return(Conflict());
            }

            await context.Likes.AddAsync(like);

            await context.SaveChangesAsync();

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