internal void Votar(string id, EnumVoto voto, string just) { var validador = new ValidadorVotacao(); validador.ValidaVotoSemSessao(_inicioVotacao); validador.ValidaTerminoSessao(_inicioVotacao); validador.ValidaVotos(id, Votos); validador.ValidaJair(just); validador.ValidaTrabalho(just); var usuario = Usuarios.FirstOrDefault(p => p.Id.ToString() == id) .ExcecaoSeNull("Este gamelão não foi encontrado."); var votoDto = new Voto { Guid = Guid.NewGuid(), Usuario = usuario, TipoVoto = voto, Justificativa = new JustificativaVoto { Guid = Guid.NewGuid(), Texto = just } }; Votos.Add(votoDto); }
internal void IniciarVotacao(string id, string pergunta) { var validador = new ValidadorVotacao(); var usuario = Usuarios.FirstOrDefault(p => p.Id.ToString() == id) .ExcecaoSeNull("Este gamelão não foi encontrado."); validador.ValidaBloqueados(Bloqueados, usuario); validador.ValidaTempoInicioVotacao(_inicioVotacao); validador.ValidaJair(pergunta); validador.ValidaTrabalho(pergunta); _guid = Guid.NewGuid(); _pergunta = pergunta; _inicioVotacao = DateTime.Now; _nomeDoSujeitoQueIniciouSessao = string.IsNullOrWhiteSpace(usuario.Nomezinho) ? usuario.Nome : usuario.Nomezinho; Votos.Clear(); }
internal void Justificar(string id, string just) { var validador = new ValidadorVotacao(); var usuario = Usuarios.FirstOrDefault(p => p.Id.ToString() == id) .ExcecaoSeNull("Não achamos esse gamelão na nossa base baluda."); validador.ValidaBloqueados(Bloqueados, usuario); var voto = Votos.FirstOrDefault(p => p.Usuario.Id.ToString() == id) .ExcecaoSeNull("Não votasse nessa sessão, só lamento."); validador.ValidaJair(just); validador.ValidaTrabalho(just); voto.Justificativa = new JustificativaVoto { Guid = Guid.NewGuid(), Texto = just }; }