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 })); }
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); }
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); } }