コード例 #1
0
ファイル: LinkService.cs プロジェクト: Cynninge/ShareURLink
        public string LikeIt(UserModel user, int id)
        {
            var    link     = _context.Links.Include(x => x.Likes).FirstOrDefault(x => x.Id == id);
            var    userData = _context.Users.Include(y => y.MyLinks).Include(z => z.LinksILike).FirstOrDefault(x => x.Id == user.Id);
            string message;

            if (userData.LinksILike is null)
            {
                _likeService.CreateLike(link, user);
                LikesCounter(link);
                return(message = "You like this link");
            }
            else if (userData.MyLinks.Contains(link))
            {
                return(message = "This is your link");
            }
            else
            {
                var like = _context.Likes.FirstOrDefault(like => like.Link == link & like.User == user);
                if (like is null)
                {
                    _likeService.CreateLike(link, user);
                    LikesCounter(link);
                    return(message = "You like this link");
                }
                else
                {
                    message = _likeService.ChangeStatus(like);
                    LikesCounter(link);
                    return(message);
                }
            }
        }
コード例 #2
0
        public ActionResult Like(string likeButton)
        {
            if (Request.IsAjaxRequest())
            {
                var email = Membership.GetUser().UserName;
                var usr   = _userService.GetUserByEmail(email);

                var like = new LikeViewModel
                {
                    ImageId = int.Parse(likeButton),
                    UserId  = usr.Id
                };

                _likeService.CreateLike(like.ToBllLike());
                _imageService.ChangeNumberOfLikes(int.Parse(likeButton));

                var imgDb = _imageService.GetImageEntity(int.Parse(likeButton));

                var img = new ImageViewModel()
                {
                    Image               = imgDb.Image,
                    NumberOfLikes       = imgDb.NumberOfLikes,
                    UserId              = imgDb.UserId,
                    HasEstimateOfCurUsr = true
                };

                return(PartialView("LikesPartial", img));
            }
            return(View("Index"));
        }
コード例 #3
0
        public async Task <IActionResult> Post(string postId, string userLikeFromId)
        {
            var result = await _likeService.CreateLike(postId, userLikeFromId);

            if (result.Error != null)
            {
                return(BadRequest(result.Error));
            }

            return(Ok(result.Data));
        }
コード例 #4
0
        public async Task <ActionResult <LikesModel> > CreateLike(LikesModel newLike)
        {
            try
            {
                var like      = _mapper.Map <LikesModel, Likes>(newLike);
                var likeModel = await _likeService.CreateLike(like);

                newLike = _mapper.Map <Likes, LikesModel>(likeModel);
                return(Ok(newLike));
            }
            catch (DBException e)
            {
                return(BadRequest(e.Message));
            }
            catch (Exception e)
            {
                return(BadRequest("Internal error."));
            }
        }
コード例 #5
0
ファイル: LikeController.cs プロジェクト: ikolajm/Howler_API
        public async Task <object> CreateLike([FromBody] LikeForCreation like)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var likeToCreate = new Like
            {
                PostId = like.PostId,
                UserId = like.UserId
            };

            var post = await _postService.FindOneById(like.PostId);

            var createdLike = await _likeService.CreateLike(likeToCreate, post);

            var newPostData = await _postService.FindNewPostData(like.PostId, like.UserId);

            return(newPostData);
        }
コード例 #6
0
        public IActionResult LikePost(string token, int postId)
        {
            string referer = Request.Headers["Referer"].ToString();

            var postDto = _postService.GetPostById(postId).Result;
            var userId  = JwtDecoder.DecodeTokenToId(token);

            if (postDto.ApplicationUserId == userId)
            {
                return(Redirect(referer));
            }

            LikeDto likeDto = new LikeDto
            {
                CurrentPost       = postDto,
                ApplicationUserId = userId
            };

            _likeService.CreateLike(likeDto);
            _postService.LikePost(postDto.Id);
            return(Ok(postDto));
        }
コード例 #7
0
        public IActionResult LikeHandler(int reportId, string userId)
        {
            //user id we can get it from here

            //retrieve the like with the params.
            var tempLike = _likeService.GetLikeBasedOnReportIdAndUserId(reportId, userId);

            if (tempLike == null)
            {
                var addLike = new Like()
                {
                    ReportId = reportId,
                    UserId   = userId,
                    Liked    = true
                };
                //while adding like set to true by default
                _likeService.CreateLike(addLike);
                return(RedirectToAction("Index"));
            }
            else
            {
                if (tempLike.Liked == false)
                {
                    tempLike.Liked = true;
                    _likeService.UpdateLike(tempLike);
                }
                else
                {
                    tempLike.Liked = false;
                    _likeService.UpdateLike(tempLike);
                }
                return(RedirectToAction("Index"));
            }

            //if no result: Create new like and set the liked==true
            //if result: check if liked == true -> call updated method and set the liked to false
            //  ----------------------- == false -> call updated method and set the liked to false
        }