示例#1
0
        private async Task <bool> Unlike(LikeImageRequest request)
        {
            var likeImage = await _context.LikeImages.Where(x => x.UserId == request.UserId && x.ImageId == request.ImageId).FirstOrDefaultAsync();

            var image = await _context.ThumbnailImages.FindAsync(request.ImageId);

            image.NumberOflikes--;

            try
            {
                _context.LikeImages.Remove(likeImage);
                if (image.NumberOflikes < 0)
                {
                    image.NumberOflikes = 0;
                }
                _context.ThumbnailImages.Update(image);
                await _context.SaveChangesAsync();

                return(true);
            }
            catch
            {
                return(false);
            }
        }
        public async Task <IActionResult> LikeImage([FromForm] LikeImageRequest request)
        {
            var userInfo = _sessionService.GetDataFromToken();

            if (request.UserId != userInfo.UserId)
            {
                return(StatusCode(401, new
                {
                    Message = "userId is not correct"
                }));
            }

            if (!await _imageApplication.IsExist(request.ImageId))
            {
                return(BadRequest(new
                {
                    Message = "Image id is not correct"
                }));
            }

            if (!await _userApplication.IsExist(request.UserId))
            {
                return(BadRequest(new
                {
                    Message = "User id is not correct"
                }));
            }

            var message = await _imageApplication.LikeImage(request);

            return(Ok(new
            {
                Message = message
            }));
        }
        public async Task <IActionResult> LikeImage([FromForm] LikeImageRequest request)
        {
            var userInfo = _sessionService.GetDataFromToken();

            if (request.UserId != userInfo.UserId)
            {
                return(StatusCode(401, new
                {
                    Message = "userId is not correct"
                }));
            }
            var image = await _imageApplication.GetImageById(request.ImageId);

            if (image == null)
            {
                return(BadRequest(new
                {
                    Message = "Image id is not correct"
                }));
            }

            if (!await _userApplication.IsExist(request.UserId))
            {
                return(BadRequest(new
                {
                    Message = "User id is not correct"
                }));
            }

            var message = await _imageApplication.LikeImage(request);

            if (message == "Liked")
            {
                var nt = new Notification()
                {
                    CreatedAt = DateTime.Now,
                    FromId    = userInfo.UserId,
                    ToId      = image.UserId,
                    Type      = "likeImage"
                };
                var noticeRes = await _notificationApp.CreateNotification(nt);

                if (noticeRes != null)
                {
                    await _notificationApp.SendNotification(noticeRes);
                }
            }
            return(Ok(new
            {
                Message = message
            }));
        }
示例#4
0
        public async Task <string> LikeImage(LikeImageRequest request)
        {
            var isLike = await _context.LikeImages
                         .AnyAsync(x => x.UserId == request.UserId && x.ImageId == request.ImageId);

            var message = "";

            if (isLike)
            {
                await this.Unlike(request);

                message = "Liked";
            }
            else
            {
                await this.Like(request);

                message = "Unliked";
            }

            return(message);
        }
示例#5
0
        private async Task <bool> Like(LikeImageRequest request)
        {
            var likeImage = new LikeImage()
            {
                UserId  = request.UserId,
                ImageId = request.ImageId
            };
            var image = await _context.ThumbnailImages.FindAsync(request.ImageId);

            image.NumberOflikes++;
            try
            {
                _context.ThumbnailImages.Update(image);
                _context.LikeImages.Add(likeImage);
                await _context.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }