public async Task <string> LikeProductExists(LikeProductCreateDto likeProduct)
        {
            //sonuc==0 ise yeni gelen datayı ekle
            //sonuc==1 ise güncelleme yap.(eski datayı sil yenisini ekle)
            //sonuc==2 ise hiçbirşey yapma
            var sonuc = "";
            //postId ve userId göndererek daha önce işlem yapılıp yaplmadığını döndüm.

            var isThere = await _likeProductDal.GetList(w => w.ProductId == likeProduct.ProductId && w.UserId == likeProduct.UserId);

            //kayıt yoksa yeni gelen değeri ekle
            if (isThere.Count == 0)
            {
                sonuc = "0";
                return(sonuc);
            }
            //postId userId ve likestatu durular gönderilir.
            var likestatu = await _likeProductDal.GetList(w => w.ProductId == likeProduct.ProductId && w.UserId == likeProduct.UserId && w.LikeStatus == likeProduct.LikeStatus);

            //eğer gelen data db yoksa güncelleme yap
            if (likestatu.Count == 0)
            {
                sonuc = "1";
                return(sonuc);
            }
            //eğer ikisine de girmezse hiç birişlem yapma diyeceğiz
            sonuc = "2";
            return(sonuc);
        }
        public async Task <IResult> Add(LikeProductCreateDto likeProduct)
        {
            var lproduct = new LikeProduct
            {
                ProductId  = likeProduct.ProductId,
                UserId     = likeProduct.UserId,
                LikeStatus = likeProduct.LikeStatus
            };
            await _likeProductDal.Add(lproduct);

            return(new SuccessResult(Messages.LikeProductAdded));
        }
        [HttpPost("add")]//++++
        public async Task <IActionResult> Add(LikeProductCreateDto likeProductCreateDto)
        {
            var gonder = await _likeProductService.LikeProductExists(likeProductCreateDto);


            if (gonder == "2")
            {
                var delete = await _likeProductService.Delete(likeProductCreateDto);

                if (delete.Success)
                {
                    var updateNumber = await _likeProductService.GetNumberStatus(likeProductCreateDto.ProductId);

                    if (likeProductCreateDto.LikeStatus == true)
                    {
                        updateNumber.Data.Message = "Beğeni kaldırıldı.";
                    }
                    else
                    {
                        updateNumber.Data.Message = "Beğenmeme geri kaldırıldı.";
                    }
                    return(Ok(updateNumber.Data));
                }
            }

            //Hiç kayıt yok yeni kayıt ekle
            if (gonder == "0")
            {
                var result = await _likeProductService.Add(likeProductCreateDto);

                var updateNumber = await _likeProductService.GetNumberStatus(likeProductCreateDto.ProductId);

                if (result.Success)
                {
                    if (likeProductCreateDto.LikeStatus == true)
                    {
                        updateNumber.Data.Message = "Bu postu beğendiniz";
                    }
                    else
                    {
                        updateNumber.Data.Message = "Bu postu beğenmediniz";
                    }
                    return(Ok(updateNumber.Data));
                }
            }

            //kayıt var ama güncelleme işlemi yapılacak.
            if (gonder == "1")
            {
                var delete = await _likeProductService.Delete(likeProductCreateDto);

                if (delete.Success)
                {
                    var result = await _likeProductService.Add(likeProductCreateDto);

                    var updateNumber = await _likeProductService.GetNumberStatus(likeProductCreateDto.ProductId);

                    if (likeProductCreateDto.LikeStatus == true)
                    {
                        updateNumber.Data.Message = "Bu postu beğendiniz";
                    }
                    else
                    {
                        updateNumber.Data.Message = "Bu postu beğenmediniz.";
                    }

                    if (result.Success)
                    {
                        return(Ok(updateNumber.Data));
                    }
                }
            }
            return(BadRequest());
        }
        public async Task <IResult> Delete(LikeProductCreateDto likeProduct)
        {
            await _likeProductDal.DeleteById(w => w.ProductId == likeProduct.ProductId && w.UserId == likeProduct.UserId);

            return(new SuccessResult());
        }