Esempio n. 1
0
 public void DownVote(Usuario usuario)
 {
     if (UsuarioJaInteragiuComResposta(usuario))
     {
         throw new UsuarioJaDeuDownVoteException();
     }
     DownVotes.Add(new DownVoteResposta(this, usuario));
 }
Esempio n. 2
0
        public IHttpActionResult DownVote(int id)
        {
            var user      = _context.Users.Find(User.Identity.GetUserId());
            var post      = _context.Posts.Find(id);
            var downVotes = post.DownVotes.ToList();
            var upVotes   = post.UpVotes.ToList();

            if (downVotes.FindAll(u => u.UserId == user.Id).Count == 0)
            {
                if (upVotes.Select(u => u.UserId).Contains(user.Id))
                {
                    var upVote = _context.UpVotes.Where(u => u.UserId == user.Id).FirstOrDefault();
                    _context.UpVotes.Remove(upVote);
                }
                DownVotes downVote = new DownVotes
                {
                    VotedDateTime = DateTime.Now,
                    UserId        = user.Id,
                    User          = user,
                    Post          = post,
                    PostId        = id,
                };
                post.DownVotes.Add(downVote);
                var repCount = post.UpVotes.Count - post.DownVotes.Count;
                if (repCount <= 2)
                {
                    post.CreatedBy.Reputation = "beginner";
                }
                else if (repCount > 2)
                {
                    post.CreatedBy.Reputation = "Intermediat";
                }
                else if (repCount > 4)
                {
                    post.CreatedBy.Reputation = "Pro";
                }
                _context.SaveChanges();
                return(Ok());
            }
            return(BadRequest());
        }
Esempio n. 3
0
 public bool UsuarioJaInteragiuComResposta(Usuario usuario)
 {
     return(UpVotes.Any(u => u.Usuario.Id == usuario.Id) ||
            DownVotes.Any(d => d.Usuario.Id == usuario.Id));
 }
Esempio n. 4
0
 public bool DeveSerExcluida()
 {
     return((UpVotes.Count() - DownVotes.Count()) <= 4);
 }