public async Task <bool> LikeMemeAsync(MemeLikeDto memeLikeDto) { MemeLike actualMemeLike = DtoToEntityConverter.Convert <MemeLike, MemeLikeDto>(memeLikeDto); if (!await _memeLikeRepository.ExistsAsync(memeLike => memeLike.MemeId.Equals(memeLikeDto.MemeId) && memeLike.UserId.Equals(memeLikeDto.UserId))) { return(await _memeLikeRepository.CreateAsync(actualMemeLike)); } actualMemeLike = await _memeLikeRepository.FindSingleByExpressionAsync(memeLike => memeLike.MemeId.Equals(memeLikeDto.MemeId) && memeLike.UserId.Equals(memeLikeDto.UserId)); actualMemeLike.IsLike = true; return(await _memeLikeRepository.UpdateAsync(actualMemeLike)); }
public async Task <IActionResult> DislikeAsync([FromBody] MemeLikeViewModel memeLikeViewModel) { if (!ModelState.IsValid) { return(Json(ModelState.DefaultInvalidModelStateWithErrorMessages())); } int userId = Convert.ToInt32(User.FindFirstValue(ClaimTypes.NameIdentifier)); MemeLikeDto memeLikeDto = memeLikeViewModel.GetMemeLikeDto(userId); return(await _memeLikingService.DislikeMemeAsync(memeLikeDto) ? Json(new { success = true, disliked = true }) : Json(new { success = false, message = "Something happened.." })); }