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); } } }
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")); }
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)); }
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.")); } }
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); }
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)); }
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 }