Пример #1
0
 protected override void RemoveActivityAction(ActivityAction action)
 {
     base.RemoveActivityAction(action);
     Likes.RemoveForResource(action.action_id);
     Comments.RemoveForResource(action.action_id);
     RemoveRefActions(action);
 }
Пример #2
0
        /// <summary>
        /// Add Like to a Photo
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult SumLike(int id)
        {
            var ph    = db.Photo.Find(id);
            var likes = ph.PH_Favourites + 1;

            ph.PH_Likes = likes;


            int usuario = Convert.ToInt32(Session["UserId"]);

            var likeadd = new Likes();

            likeadd.LIK_PH_Id      = id;
            likeadd.LIK_US_Id      = usuario;
            likeadd.LIK_ButtonLike = false;

            ViewBag.buttonLike = false;
            try
            {
                db.Likes.Add(likeadd);
                db.Entry(ph).State = EntityState.Modified;
                db.SaveChanges();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                RedirectToAction("ErrorPage", "Error");
            }
            addToNotifications(id, 3);

            return(RedirectToAction("PhotoViewer", "Photo", new { id = id }));
        }
Пример #3
0
        protected override void RemoveRecordFromTable(object refRecord)
        {
            Like like = refRecord as Like;

            activity.Reactions[like.reaction]--;
            Likes.Remove(like.poster_id, like.resource_id);
        }
        public ActionResult Like(int id, int u_id)
        {
            if (ModelState.IsValid)
            {
                var likeconnn = db.LikeConns.Where(x => x.Blog_Id == id && x.User_id == u_id).FirstOrDefault();
                if (likeconnn != null)
                {
                    Likes Like = db.LikeConns.Where(x => x.User_id == u_id && x.Blog_Id == id).FirstOrDefault();
                    db.LikeConns.Attach(Like);
                    Like.IsLiked = true;
                    db.SaveChanges();
                    TempData["msg"] = "Thank you for a like!!";
                    ModelState.Clear();
                    return(RedirectToAction("Index", "Dashboard"));
                }
                else
                {
                    Likes Like = new Likes();
                    db.LikeConns.Add(Like);
                    Like.Blog_Id = id;
                    Like.User_id = u_id;
                    Like.IsLiked = true;


                    db.SaveChanges();
                    TempData["msg"] = "Thank you for a like!!";
                    ModelState.Clear();
                    return(RedirectToAction("Index", "Dashboard"));
                }
            }

            return(RedirectToAction("BlogPost", new { id }));
        }
        public void CommentLike(string userId, int commentId,
                                string likeSpan, string dislikeSpan)
        {
            Likes like = repository.Likes
                         .FirstOrDefault(l => l.For == "Comment" && l.ForId == commentId &&
                                         l.UserId == userId);

            if (like == null)
            {
                like = new Likes
                {
                    For    = "Comment",
                    ForId  = commentId,
                    UserId = userId
                };
                repository.AddLike(like);

                //notification
                _ = ShowNotification(userId, commentId);
            }
            else
            {
                repository.DeleteLike(like.Id);
            }

            _ = CommentLikesDislikesInitial(userId, commentId, likeSpan, dislikeSpan);
        }
Пример #6
0
        public async Task <bool> SaveLike(Likes like)
        {
            bool isLikeSaved = false;

            try
            {
                var likeRegistered = await GetLikeDetails(like);

                if (likeRegistered != null)
                {
                    return(await DeleteLike(like));
                }

                await _context.Likes.AddAsync(like);

                await _context.SaveChangesAsync();

                isLikeSaved = true;
            }
            catch (Exception)
            {
                throw;
            }
            return(isLikeSaved);
        }
Пример #7
0
        public IActionResult LikeAct(string id)
        {
            var post = (from s in _context.Files
                        where s.DocumentId.Equals(id) select s).FirstOrDefault <Files>();
            var currStd = HttpContext.Session.GetObject <Student>("student");
            var like    = (from l in _context.Likes
                           where l.DocumentId.Equals(id) &&
                           l.StudentId.Equals(currStd.Id) select l).FirstOrDefault <Likes>();

            if (like != null)
            {
                _context.Likes.Remove(like);
                post.Likes -= 1;
                _context.Files.Update(post);
            }
            else
            {
                var objLike = new Likes()
                {
                    DocumentId = id,
                    StudentId  = currStd.Id
                };
                _context.Likes.Add(objLike);
                post.Likes += 1;
                _context.Files.Update(post);
            }
            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }
Пример #8
0
        public ActionResult RetVoteComent(int idDisc, int idComent, string btnAction)
        {
            string     option = btnAction.ToString();
            var        userId = User.Identity.GetUserId();
            Discussoes discs  = db.Discussoes.Find(idDisc);
            //seleciona os LIKES e DISLIKES do COMENTARIO com o id igual ao id passado por parâmetro
            Likes    li  = db.Likes.Select(x => x).Where(x => x.DiscussaoFK == idDisc).Where(x => x.ComentarioFK == idComent).Where(x => x.UtilizadorFK == userId).FirstOrDefault();
            Dislikes dis = db.Dislikes.Select(x => x).Where(x => x.DiscussaoFK == idDisc).Where(x => x.ComentarioFK == idComent).Where(x => x.UtilizadorFK == userId).FirstOrDefault();

            switch (option)
            {
            case "likesComent":
                discs.likes = discs.likes - 1;
                db.Likes.Remove(li);
                db.SaveChanges();
                break;

            case "dislikesComent":
                discs.dislikes = discs.dislikes - 1;
                db.Dislikes.Remove(dis);
                db.SaveChanges();
                break;
            }


            return(RedirectToAction("PergDisc", "PergDisc", new { id = idDisc }));
        }
Пример #9
0
        public ActionResult Like(Likes like, int id)
        {
            ViewBag.stat = "Like";
            var userid       = User.Identity.GetUserId();
            var user         = db.Users.Single(u => u.Id == userid);
            var checker_like = db.likes.SingleOrDefault(l => l.whichNote == id && l.user.Id == userid);
            var like_var     = new Likes {
                user      = user,
                whichNote = id
            };

            if (checker_like == null)
            {
                //ViewBag.stat = "Like";
                db.likes.Add(like_var);
                db.SaveChanges();
                return(RedirectToAction("Details", "Notes", new { id = id }));
            }
            else if (checker_like != null)
            {
                //ViewBag.stat = "dislike";
                db.likes.Remove(checker_like);
                db.SaveChanges();
                return(RedirectToAction("Details", "Notes", new { id = id }));
            }
            return(View());
        }
Пример #10
0
        /// <summary>
        /// Syncs 2 post, raising property change event if necessary
        /// </summary>
        /// <param name="newPost"></param>
        public void SyncWithPost(ActivityPost newPost)
        {
            if (UpdatedTime != newPost.UpdatedTime)
            {
                UpdatedTime = newPost.UpdatedTime;
                this.NotifyPropertyChanged(PropertyChanged, o => o.UpdatedTime);
            }

            if (string.Compare(Message, newPost.Message, StringComparison.OrdinalIgnoreCase) != 0)
            {
                Message = newPost.Message;
                this.NotifyPropertyChanged(PropertyChanged, o => o.Message);
            }

            if (CanLike != newPost.CanLike)
            {
                CanLike = newPost.CanLike;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CanLike);
            }

            if (HasLiked != newPost.HasLiked)
            {
                HasLiked = newPost.HasLiked;
                this.NotifyPropertyChanged(PropertyChanged, o => o.HasLiked);
            }

            if (!Likes.Equals(newPost.Likes))
            {
                Likes = newPost.Likes;
                this.NotifyPropertyChanged(PropertyChanged, o => o.Likes);
            }

            if (CanComment != newPost.CanComment)
            {
                CanComment = newPost.CanComment;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CanComment);
            }

            if (CanRemoveComments != newPost.CanRemoveComments)
            {
                CanRemoveComments = newPost.CanRemoveComments;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CanRemoveComments);
            }

            if (CommentCount != newPost.CommentCount)
            {
                CommentCount = newPost.CommentCount;
                Comments     = newPost.Comments;
                this.NotifyPropertyChanged(PropertyChanged, o => o.CommentCount);
            }
            else
            {
                if (Comments.Count > 0 && (newPost.Comments.Count != Comments.Count ||
                                           (Comments[0].Time != newPost.Comments[0].Time ||
                                            Comments[Comments.Count - 1].Time != newPost.Comments[Comments.Count - 1].Time)))
                {
                    Comments = newPost.Comments;
                }
            }
        }
Пример #11
0
        public ActionResult RetVote(int id, string btnAction)
        {
            string     option = btnAction.ToString();
            var        userId = User.Identity.GetUserId();
            Discussoes discs  = db.Discussoes.Find(id);
            Likes      li     = db.Likes.Select(x => x).Where(x => x.DiscussaoFK == id).FirstOrDefault();
            Dislikes   dis    = db.Dislikes.Select(x => x).Where(x => x.DiscussaoFK == id).FirstOrDefault();

            switch (option)
            {
            case "likesDisc":
                discs.likes = discs.likes - 1;
                db.Likes.Remove(li);
                Session["stateVoteDisc"] = false;
                db.SaveChanges();
                break;

            case "dislikesDisc":
                discs.dislikes = discs.dislikes - 1;
                db.Dislikes.Remove(dis);
                Session["stateVoteDiscDislike"] = false;
                db.SaveChanges();
                break;
            }


            return(RedirectToAction("PergDisc", "PergDisc", new { id = id }));
        }
Пример #12
0
        public JsonResult OnGetAddFavorite(int favorite, int postId)
        {
            try
            {
                Users user = new Users();
                user = this.context.Users.Where(x => x.UserID == BitConverter.ToInt32(_session.Get("id"))).FirstOrDefault();
                if (favorite == 1)
                {
                    Likes like = new Likes();
                    like.Post = this.context.Posts.Where(x => x.PostID == postId).FirstOrDefault();
                    like.User = user;
                    this.context.Likes.Add(like);

                    Posts post = (from p in context.Posts where p.PostID == postId select p).FirstOrDefault();
                    post.PostLikeCount++;
                }
                else
                {
                    Likes like = new Likes();
                    like = this.context.Likes.Where(x => x.User.UserID == user.UserID).Where(x => x.Post.PostID == postId).First();
                    this.context.Likes.Remove(like);
                    Posts post = (from p in context.Posts where p.PostID == postId select p).FirstOrDefault();
                    post.PostLikeCount--;
                }
                this.context.SaveChanges();
                Likes = this.context.Likes.Where(x => x.User.UserID == user.UserID).ToList();
                return(new JsonResult(true));
            }
            catch (Exception)
            {
                return(new JsonResult(false));
            }
        }
Пример #13
0
        public IActionResult getStars(string star, string name)
        {
            Lection l = lS.getAuthorByLName(name);

            if (!lkS.checkExistLike(uS.getUserbyName(User.Identity.Name).Id, lS.getLectionByName(name).Id))
            {
                Likes like = new Likes();
                like.userStar  = Convert.ToInt32(star);
                like.LectionId = lS.getLectionByName(name).Id;
                like.UserId    = uS.getUserbyName(User.Identity.Name).Id;
                lkS.addLike(like);
                lkS.Save();
                lS.likeLection(lS.getLectionByName(name).Id, lkS.getNowRating(lS.getLectionByName(name).Id));
                lS.Save();

                User user = uS.getUserById(l.UserId);
                user.ammountStars++;
                uS.plusStar(user);
                uS.Save();
            }
            else
            {
                Likes like = lkS.getLikeById(uS.getUserbyName(User.Identity.Name).Id, lS.getLectionByName(name).Id);
                like.userStar = Convert.ToInt32(star);
                lkS.updateLike(like);
                lkS.Save();
                lS.likeLection(lS.getLectionByName(name).Id, lkS.getNowRating(lS.getLectionByName(name).Id));
                lS.Save();
            }

            ViewBag.usName = uS.getUserNameById(l.UserId);
            return(View("ShowLection", lS.getLectionByName(name)));
        }
Пример #14
0
        public async Task <IActionResult> LikeUser(int id, int recipientId)
        {
            if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }

            var like = await _DatingRepository.GetLike(id, recipientId);

            if (like != null)
            {
                return(BadRequest("already liked"));
            }

            if (await _DatingRepository.GetUser(recipientId) == null)
            {
                return(NotFound());
            }

            like = new Likes
            {
                LikerID = id,
                LikeeID = recipientId
            };

            _DatingRepository.Add <Likes>(like);

            if (await _DatingRepository.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("unable to like user"));
        }
Пример #15
0
        public IActionResult LikeConcept(int ConceptsId)
        {
            ViewBag.errors = new List <string>();
            if (!loggedIn())
            {
                return(RedirectToAction("Index", "User"));
            }
            System.Console.WriteLine("****************************Inside Like Concept");
            int?UsersId   = HttpContext.Session.GetInt32("UserId");
            var userlikes = _context.Likes.Include(a => a.Users).Include(a => a.Concepts).Where(a => a.UsersId == UsersId && a.ConceptsId == ConceptsId).ToList();

            if (userlikes.Count > 0)
            {
                ViewBag.errors.Add("Can't like a post more than once");
                ViewBag.name     = HttpContext.Session.GetString("name");
                ViewBag.Concepts = GetConcepts();
                int?Id = HttpContext.Session.GetInt32("UserId");
                ViewBag.UsersId = (int)Id;
                return(View("Show"));
            }
            else
            {
                Concepts concept = _context.Concepts.SingleOrDefault(a => a.ConceptsId == ConceptsId);
                Likes    likes   = new Likes {
                    UsersId    = (int)UsersId,
                    ConceptsId = ConceptsId,
                    CreatedAt  = DateTime.Now,
                    UpdatedAt  = DateTime.Now,
                };
                _context.Likes.Add(likes);
                concept.LikeCount += 1;
                _context.SaveChanges();
                return(RedirectToAction("Show"));
            }
        }
Пример #16
0
        public async Task <IActionResult> AddLike(int id)
        {
            var user = await _userManager.GetUserAsync(HttpContext.User);

            var comm = await db.Comments.FirstOrDefaultAsync(c => c.Id == id);

            Likes like = new Likes
            {
                CommentsId = comm.Id,
                User       = user,
                Comments   = comm
            };

            var find = likesRepository.FindLike(user, comm);

            if (find == null)
            {
                likesRepository.AddLike(like, comm);
            }
            else
            {
                likesRepository.RemoveLike(find, comm);
            }

            return(RedirectToAction("CommentsList", new { id = comm.CarLotId }));
        }
Пример #17
0
            public static bool Post(string guid, bool isComment, string key)
            {
                //check if its disliked
                if (DislikeClass.CheckExistence(guid, isComment, key))
                {
                    return(false);
                }
                //Check if there is already a like by the user
                if (CheckExistence(guid, isComment, key))
                {
                    //delete the like
                    Delete(guid, isComment, key);
                    return(false);
                }
                //post new like
                Likes like = new Likes
                {
                    Owner_Guid = key,
                };

                if (isComment)
                {
                    like.Comment_Guid = guid;
                }
                else
                {
                    like.Confess_Guid = guid;
                }
                like.Id = Logical.Setter(like.Id);
                contextLite.Likes.Insert(like);
                //context.Likes.InsertOne(like);
                return(true);
            }
Пример #18
0
        public async Task <ApiResponse <LikeResponseDto> > LikePost(LikeDto likeRequest)
        {
            // Do a check on the Request Ip Address and User-Agent to ensure a like action is not
            // Initiated twice from the same user on the same device to avoid spam
            // Also do a check on the RequestUsername supplied from the client, to ensure a particular user
            // Does not Like twice (just incase request is sent from same user with the a different device)

            ApiResponse <LikeResponseDto> result = new ApiResponse <LikeResponseDto>();
            var resultMessage = "";



            Likes like = _mapper.Map <Likes>(likeRequest);


            try
            {
                var isLikedFromClient = await LikedExistFromClient(likeRequest.RequestIpAddress,
                                                                   likeRequest.RequestUserAgent, likeRequest.ClientReferenceId, likeRequest.PostId, likeRequest.RequestUsername);


                if (isLikedFromClient)
                {
                    resultMessage = $"Post with Id: {likeRequest.PostId} has be been Liked from {resultMessage} Ip Address:: {likeRequest.RequestIpAddress} by Username:: {likeRequest.RequestUsername} (Action is permitted only once) ";

                    _logger.LogInformation(resultMessage);

                    throw new AppException(resultMessage);
                }

                like.CreatedOn = DateTime.Now;
                await _likeRepository.AddAsync(like);

                await _unitOfWork.CompleteAsync();


                resultMessage  = "Successfully liked post";
                result.Status  = Helpers.ApiReponseStatusCodes.Created;
                result.Message = resultMessage;

                result.Data = new LikeResponseDto
                {
                    RequestIpAddress  = like.RequestIpAddress,
                    RequestUserAgent  = like.RequestUserAgent,
                    PostId            = like.PostId,
                    ClientReferenceId = like.ClientReferenceId,
                    RequestUsername   = like.RequestUsername
                };


                return(result);
            }
            catch (Exception ex)
            {
                _logger.Log(LogLevel.Error, ex.StackTrace);
                _logger.Log(LogLevel.Error, ex.Message);

                throw new AppException(ex.Message);
            }
        }
        public News UpdateFromDto(NewsDto newsDto)
        {
            if (newsDto == null)
            {
                return(this);
            }

            NewsId   = newsDto.newsId;
            AuthorId = newsDto.authorId;
            Title    = newsDto.title;
            Body     = newsDto.body;
            Date     = newsDto.date.UnixTimestampToDateTime();
            Type     = newsDto.type;

            // Not recreating list in case of situation if somoene is holding list's reference during update
            Likes.Clear();
            Likes.AddRange(newsDto.likes);

            // Same thing here
            Comments.Clear();
            if (newsDto.comments != null)
            {
                Comments.AddRange(newsDto.comments.Select(commentDto => commentDto.commentId));
            }

            // For fluent interface purposes
            return(this);
        }
        public ActionResult AddDisLike(string username)
        {
            if (username == User.Identity.Name)
            {
                return(RedirectToAction("ViewProfile", new { Username = username }));
            }
            using (UsersContext db = new UsersContext())
            {
                int   userIdMe = WebSecurity.GetUserId(User.Identity.Name);
                int   userIdTo = WebSecurity.GetUserId(username);
                Likes tempLike = db.Likes.Where(m => m.From == userIdMe && m.To == userIdTo).FirstOrDefault();
                if (tempLike != null)
                {
                    if (tempLike.LikeOrDislike == true)
                    {
                        tempLike.LikeOrDislike = false;
                    }
                    else
                    {
                        db.Likes.Remove(tempLike);
                    }
                    db.SaveChanges();
                }

                else
                {
                    db.Likes.Add(new Likes {
                        From = userIdMe, To = userIdTo, LikeOrDislike = false
                    });
                    db.SaveChanges();
                }
            }
            return(RedirectToAction("ViewProfile", new { Username = username }));
        }
 //AlterLikePlant allows to like a plant with given plant ID.
 public bool AlterLikePlant(AlterLikeModel model)
 {
     if (ctx.Likes.Where(e => e.PlantID == model.PlantID && e.UserID == _userID).Count() < 1)
     {
         Likes likes = new Likes
         {
             IsLiked     = true,
             PlantID     = model.PlantID,
             UserID      = _userID,
             CreatedDate = DateTimeOffset.UtcNow,
         };
         ctx.Likes.Add(likes);
     }
     else
     {
         bool isLiked = ctx.Likes.Single(e => e.PlantID == model.PlantID && e.UserID == _userID).IsLiked;
         if (isLiked)
         {
             ctx.Likes.Single(e => e.PlantID == model.PlantID && e.UserID == _userID).IsLiked      = false;
             ctx.Likes.Single(e => e.PlantID == model.PlantID && e.UserID == _userID).ModifiedDate = DateTimeOffset.UtcNow;
         }
         else
         {
             ctx.Likes.Single(e => e.PlantID == model.PlantID && e.UserID == _userID).IsLiked      = true;
             ctx.Likes.Single(e => e.PlantID == model.PlantID && e.UserID == _userID).ModifiedDate = DateTimeOffset.UtcNow;
         }
     }
     return(ctx.SaveChanges() == 1);
 }
Пример #22
0
        public async Task <IActionResult> PutLikes([FromRoute] int id, [FromBody] Likes likes)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != likes.IdLike)
            {
                return(BadRequest());
            }

            _context.Entry(likes).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!LikesExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public ActionResult Like(string id, string actn)
        {
            Likes lk = new Likes();

            actn = actn.ToLower();
            string result = string.Empty;

            if (actn == "like")
            {
                var s = lk.LikeMedia(id, HttpContext.User.Identity.Name);
                if (s.meta.code == "200")
                {
                    result = "liked";
                }
            }
            else if (actn == "unlike")
            {
                var s = lk.UnlikeMedia(id, HttpContext.User.Identity.Name);
                if (s.meta.code == "200")
                {
                    result = "unliked";
                }
            }

            return(Content(result));
        }
Пример #24
0
        public static async void LikeInsta(InstaSharp.Models.Media selectedPost)
        {
            if (selectedPost != null)
            {
                var authInfo     = new OAuth(_config);
                var authResponse = new InstaSharp.Models.Responses.OAuthResponse();
                var response     = await _user.GetSelf();

                authResponse.AccessToken = Access;
                authResponse.User        = response.Data;
                var likes = new Likes(_config, authResponse);
                if (selectedPost.UserHasLiked == true)
                {
                    await likes.Delete(selectedPost.Id);

                    selectedPost.UserHasLiked = false;
                    await _metroWindow.ShowMessageAsync("Instagram", "Cofnięto Like'a!");
                }
                else
                {
                    await likes.Post(selectedPost.Id);

                    selectedPost.UserHasLiked = true;
                    await _metroWindow.ShowMessageAsync("Instagram", "Dodano Like'a!");
                }
            }
            else
            {
                await _metroWindow.ShowMessageAsync("", "Nie wybrano posta");
            }
        }
Пример #25
0
        public Post LikeOrUnlikePost(int postId, int userId)
        {
            var  user         = _userRepository.GetUser(userId);
            var  post         = GetPostById(postId);
            bool alreadyLiked = false;

            using (var connection = new SqliteConnection(_connectionString))
            {
                var sql   = $"SELECT * FROM Likes WHERE Likes.PostId = @PostId";
                var likes = connection.Query <Likes>(sql, post);
                likes.ToList();
                foreach (var prop in likes)
                {
                    if (prop.UserId == user.UserId)
                    {
                        alreadyLiked = true;
                    }
                }
                if (!alreadyLiked)
                {
                    var newLike = new Likes(user.UserId, post.PostId);
                    var sqlTwo  = $"INSERT INTO Likes (UserId, PostId) VALUES(@UserId, @PostId)";
                    connection.Execute(sqlTwo, newLike);
                    return(post = GetPostById(newLike.PostId));
                }
                var sqlThree = $"DELETE FROM Likes WHERE UserId = @UserId";
                connection.Execute(sqlThree, user);
                return(post = GetPostById(postId));
            }
        }
Пример #26
0
        public async Task UnlikeKwet_UnLikeSuccess_ReturnsUnlikedKwet()
        {
            var userGuid  = Guid.NewGuid();
            var likeUser  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var kwet1 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };
            var like = new Likes()
            {
                Name   = "LikeUser",
                userId = likeUser
            };

            kwet1.Likes.Add(like);

            var kwetWithoutLikes = await _kwetRepository.Create(kwet1);

            kwetWithoutLikes.Likes.Remove(like);

            var result = await _kwetRepository.Update(kwetWithoutLikes);

            Assert.Empty(result.Likes);
        }
Пример #27
0
        public IActionResult AddLike(Likes newLike, int addLikePostID, int likeUserID)
        {
            List <Likes> allLikes = _context.likes.Where(like => like.posts_id == addLikePostID).ToList();

            foreach (var like in allLikes)
            {
                if (like.users_id == likeUserID)
                {
                    return(RedirectToAction("Success"));
                }
            }

            //Session User ID
            int?signIn = HttpContext.Session.GetInt32("LoggedInUser");

            ViewBag.signedIn = signIn;
            if (signIn == null)
            {
                return(View("Index"));
            }


            newLike.users_id = likeUserID;
            newLike.posts_id = addLikePostID;
            _context.Add(newLike);
            _context.SaveChanges();
            return(RedirectToAction("Success"));
        }
Пример #28
0
        public async Task LikeKwet_UpdateSuccess_ReturnsLikedKwet()
        {
            var userGuid  = Guid.NewGuid();
            var likeUser  = Guid.NewGuid();
            var timeStamp = DateTime.Now;

            var kwet1 = new Kwet()
            {
                KwetId    = new Guid(),
                UserId    = userGuid,
                UserName  = "******",
                Message   = "This is my placed Kwet",
                TimeStamp = timeStamp,
                Likes     = new List <Likes>()
            };
            var like = new Likes()
            {
                Name   = "LikeUser",
                userId = likeUser
            };

            var kwetWithLikes = kwet1;

            kwetWithLikes.Likes.Add(like);

            await _kwetRepository.Create(kwet1);

            var result = await _kwetRepository.Update(kwetWithLikes);

            Assert.Single(result.Likes);
            Assert.Equal(result.Likes[0].Name, like.Name);
            Assert.Equal(result.Likes[0].userId, like.userId);
        }
        public async void ToLike(int num_of_likes, int bookId)
        {
            UserContext user_db  = new UserContext();
            var         userName = User.Identity.GetUserName();
            User        user     = await user_db.Users.FirstOrDefaultAsync(x => x.Login == userName); // UserId found

            LikesContext likes_db          = new LikesContext();
            var          real_num_of_likes = likes_db.Likes.ToArray().Length;

            Books b = db.Books.FirstOrDefault(b => b.id == bookId);
            // если в бд лайков не найден ни один лайк от пользователя
            Likes like = new Likes()
            {
                id      = (++real_num_of_likes),
                book_id = bookId,
                user_id = user.Id
            };

            likes_db.Likes.Add(like);

            b.likes = num_of_likes;

            await db.SaveChangesAsync();

            await likes_db.SaveChangesAsync();
        }
Пример #30
0
        public async Task <IActionResult> LikeUser(int id, int recipientId)
        {
            if (id != int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value))
            {
                return(Unauthorized());
            }
            var like = await _context.GetLikes(id, recipientId);

            if (like != null)
            {
                return(BadRequest("you already liked the profile"));
            }
            if (await _context.Getuser(recipientId) == null)
            {
                return(NotFound());
            }

            like = new Likes {
                LikerId = id,
                LikeeId = recipientId
            };

            _context.Add <Likes>(like);

            if (await _context.SaveAll())
            {
                return(Ok());
            }

            return(BadRequest("Failed to like user"));
        }