Beispiel #1
0
        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));
        }
Beispiel #2
0
        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.." }));
        }