Ejemplo n.º 1
0
		public async Task<IActionResult> Create(Guid userID, CreateLikeDto createLikeInfo)
		{
			var like = new Like
			{
				SenderID = userID
			};

			#region [Authorization]
			var result = await this.AuthorizationService.AuthorizeAsync
			(
				this.User, like, nameof(KindlyPolicies.AllowIfOwner)
			);

			if (result.Succeeded == false)
			{
				return this.Unauthorized();
			}
			#endregion

			this.Mapper.Map(createLikeInfo, like);

			await this.Repository.Create(like);

			return this.Created(new Uri($"{Request.GetDisplayUrl()}/{like.ID}"), this.Mapper.Map<LikeDto>(like));
		}
Ejemplo n.º 2
0
        public async Task Post([FromBody] CreateLikeDto likeDto)
        {
            var userId = User.GetUserId();

            likeDto.UserId = userId;

            await _likeService.AddAsync(likeDto);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Add(CreateLikeDto like, [FromQuery] string returnUrl)
        {
            if (ModelState.IsValid)
            {
                await _likeService.AddAsync(like);
            }

            return(Redirect(returnUrl));
        }
        public ActionResult RemoveLike(CreateLikeDto dto)
        {
            var result = _repository.GetLikeByUserAndArticleId(dto.UserId, dto.ArticleId);

            if (result == null)
            {
                return(NoContent());
            }

            _repository.RemoveLike(_mapper.Map <Like>(dto));
            return(Ok());
        }
Ejemplo n.º 5
0
        public async Task AddAsync(CreateLikeDto dto)
        {
            Advert advert = await _unitOfWork.AdvertRepository.GetAsync(dto.AdvertId);

            ThrowIfNotFound(advert);
            Like like = advert.Likes.FirstOrDefault(advertLike => advertLike.UserId == dto.UserId);

            if (like != null)
            {
                return;
            }

            var newLike = _mapper.Map <Like>(dto);

            newLike.Advert = advert;
            _unitOfWork.LikeRepository.Create(newLike);
            await _unitOfWork.SaveChangesAsync();
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> LikeToggle([FromBody] CreateLikeDto like)
        {
            var hasAny = await _imageRepository.QueryLikes()
                         .FirstOrDefaultAsync(a => a.ImageId == like.ImageId &&
                                              a.UserId == like.UserId);

            if (hasAny != null)
            {
                await _imageRepository.RemoveImageLike(hasAny);

                await _imageRepository.Save();

                return(Ok(new ResponseDto()
                {
                    Message = "unliked",
                    Status = ResponseStatus.Success,
                    Data = new
                    {
                        liked = false
                    }
                }));
            }

            await _imageRepository.AddImageLike(new ImageLike()
            {
                UserId  = like.UserId,
                ImageId = like.ImageId
            });

            await _imageRepository.Save();

            return(Ok(new ResponseDto()
            {
                Message = "liked",
                Status = ResponseStatus.Success,
                Data = new
                {
                    liked = true
                }
            }));
        }
Ejemplo n.º 7
0
 public async Task AddAsync(CreateLikeDto dto)
 {
     await $"{_apiOptions.Url}/api/like"
     .WithOAuthBearerToken(await GetAccessTokenAsync())
     .PostJsonAsync(dto);
 }