private bool VotoJaRealizado(Historia historia, int idUsuario) { if (historia != null && historia.Votos != null) { return(historia.Votos.Any(v => v.UsuarioId.Equals(idUsuario))); } else { return(false); } }
public Voto(User usuario, Carta carta, Historia historia) { AddNotifications(new Contract() .IsNotNull(usuario, nameof(usuario), "Para realizar um voto o usu�rio deve ser informado.") .IsGreaterThan(usuario.Id, 0, nameof(usuario.Id), "Para realizar um voto o usu�rio deve ser informado.") .IsNotNull(carta, nameof(carta), "Para realizar um voto a carta deve ser informado.") .IsGreaterThan(carta.ID, 0, nameof(carta.ID), "Para realizar um voto a carta deve ser informado.") .IsNotNull(historia, nameof(historia), "Para realizar um voto a historia deve ser informado.") .IsGreaterThan(historia.ID, 0, nameof(historia.ID), "Para realizar um voto a historia deve ser informado.") .IsFalse(VotoJaRealizado(historia, usuario.Id), nameof(usuario), "Usu�rio j� realizou o voto nessa hist�ria") ); if (Invalid) { return; } CriarVoto(usuario, carta, historia); }
private void CriarVoto(User usuario, Carta carta, Historia historia) { this.HistoriaId = historia.ID; this.CartaId = carta.ID; this.UsuarioId = usuario.Id; }