public async Task <bool> HasLike([FromQuery] LikeDislikeInput input) { var userId = _jwtReader.GetUserId(); return(await _likeRepository .Where(d => d.UserId == userId) .Where(d => d.ObjectTypeEnum == input.ObjectTypeEnum) .Where(d => d.ObjectId == input.ObjectId) .AnyAsync()); }
public async Task <HasLikeOrDislikeOutputEnum> HasLikeOrDislike([FromQuery] LikeDislikeInput input) { var hasDislike = await HasDislike(input); var hasLike = await HasLike(input); if (!hasLike && !hasDislike) { return(HasLikeOrDislikeOutputEnum.None); } return(hasLike ? HasLikeOrDislikeOutputEnum.OnlyLike : HasLikeOrDislikeOutputEnum.OnlyDislike); }
public async Task RemoveLike(LikeDislikeInput input) { var userId = _jwtReader.GetUserId(); var likeItem = await _likeRepository .Where(d => d.UserId == userId) .Where(d => d.ObjectTypeEnum == input.ObjectTypeEnum) .Where(d => d.ObjectId == input.ObjectId) .FirstOrDefaultAsync(); if (likeItem != null) { _likeRepository.Remove(likeItem); await _context.SaveChangesAsync(); } }
public async Task Dislike([FromBody] LikeDislikeInput input) { var hasDislike = await HasDislike(input); if (hasDislike) { return; } var hasLike = await HasLike(input); if (hasLike) { await RemoveLike(input); } await _dislikeRepository.AddAsync(new EditorInteractionDislike { UserId = _jwtReader.GetUserId(), ObjectId = input.ObjectId, ObjectTypeEnum = input.ObjectTypeEnum }); await _context.SaveChangesAsync(); }