public void DownVote(Usuario usuario) { if (UsuarioJaInteragiuComResposta(usuario)) { throw new UsuarioJaDeuDownVoteException(); } DownVotes.Add(new DownVoteResposta(this, usuario)); }
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()); }
public bool UsuarioJaInteragiuComResposta(Usuario usuario) { return(UpVotes.Any(u => u.Usuario.Id == usuario.Id) || DownVotes.Any(d => d.Usuario.Id == usuario.Id)); }
public bool DeveSerExcluida() { return((UpVotes.Count() - DownVotes.Count()) <= 4); }