public int GetQtdaVotos(int codEleicao) { EleicoesService eleicoesService = new EleicoesService(); Eleicao eleicao = eleicoesService.GetEleicao(codEleicao); return(db.Votos.Count(x => x.CodigoEleicao == codEleicao) + db.VotosBrancos.Count(x => x.CodigoEleicao == codEleicao)); }
private void PassarParaProximaEtapa(Eleicao eleicao, Usuario user) { PrazoEtapa etapaAtual = db.PrazosEtapas.Find(eleicao.Codigo, eleicao.CodigoEtapa); PrazoEtapa proxima = GetProximaEtapa(eleicao); PrazoEtapa ultima = eleicao.PrazosEtapas.Where(x => x.Etapa.CodigoModulo == eleicao.CodigoModulo) .OrderByDescending(x => x.Ordem).FirstOrDefault(); if (proxima == null && etapaAtual != ultima) { throw new EleicaoEncerradaException(eleicao); } if (proxima != null) { proxima.DataRealizada = DateTime.Today; } else { eleicao.DataFechamento = DateTime.Today; SalvaResultado(eleicao.Codigo); } eleicao.CodigoEtapa = proxima?.CodigoEtapa; db.SaveChanges(); }
public AdminViewModel() { SaveEleicaoCommand = new DelegateCommand <string>(SaveEleicao); SaveCandidatoCommand = new DelegateCommand <string>(SaveCandidato); UsuariosDB = AppViewModel.Instance.Db.GetCollection <Usuario>("usuarios"); Usuarios = new ObservableCollection <Usuario>(UsuariosDB.FindAll()); UsuarioSelecionado = new Usuario(); UsuarioSelecionado.viewModel = this; EleicoesDB = AppViewModel.Instance.Db.GetCollection <Eleicao>("eleicoes"); Eleicoes = new ObservableCollection <Eleicao>(EleicoesDB.FindAll()); EleicaoSelecionada = new Eleicao(); EleicaoSelecionada.viewModel = this; CandidatoDB = AppViewModel.Instance.Db.GetCollection <Candidato>("candidatos"); Candidatos = new ObservableCollection <Candidato>(CandidatoDB.FindAll()); CandidatoSelecionado = new Candidato(); CandidatoSelecionado.viewModel = this; CargoDB = AppViewModel.Instance.Db.GetCollection <Cargo>("cargos"); Cargos = new ObservableCollection <Cargo>(CargoDB.FindAll()); CargoSelecionado = new Cargo(); CargoSelecionado.viewModel = this; }
public IHttpActionResult GetCandidatosAtualVoto(int codEleicao) { try { Eleicao e = eleicoesService.GetEleicao(codEleicao); Usuario usuario = usuariosService.GetUsuario(User.Identity.Name); return(Ok(candidatosService.GetCandidatosParaVoto(e, usuario))); } catch (EleicaoNaoEncontradaException) { return(Content(HttpStatusCode.NotFound, "Código de Eleição não encontrado!")); } catch (ForaEtapaVotacaoException) { return(Content(HttpStatusCode.BadRequest, "A eleição não está em processo de votação no momento!")); } catch (VotoJaRealizadoException) { return(Content(HttpStatusCode.Forbidden, "Você já realizou seu voto. Não é possível anular ou alterar!")); } catch { return(Content(HttpStatusCode.InternalServerError, "Ocorreu um erro desconhecido. Por favor, entre em contato com o suporte.")); } }
private void CaregaDadosParaTeste() { candidato = new Candidato { Email = "*****@*****.**", Nome = "Eduardo Alcantara" }; candidatoRepositorio = RetornarCandidatoRepositorio(); candidatoRepositorio.Adicionar(candidato); candidato1 = new Candidato { Email = "*****@*****.**", Nome = "Eduardo Alcantara" }; candidato2 = new Candidato { Email = "*****@*****.**", Nome = "Regina Alcantara" }; voto1 = new Voto { Candidato = candidato1, Total = 1 }; voto2 = new Voto { Candidato = candidato2, Total = 1 }; var listacandidatos = new List <Voto> { voto1, voto2 }; var eleicao = new Eleicao { Data = DateTime.Now, Voto = listacandidatos, TotalVoto = listacandidatos.Count }; votacaoRepositorio = RetornarVotacaoRepositorio(); votacaoRepositorio.Adicionar(eleicao); }
public ActionResult CadastrarEleicao(Eleicoes criarVotacao) { string idUser = HttpContext.Session.GetString("Id"); var usuario = _db.Usuarios.SingleOrDefault(u => u.CodUsuario.ToString().Equals(idUser)); if (usuario != null) { var nomeVotacaoExistente = _db.Eleicoes.SingleOrDefault(u => u.Titulo.Equals(criarVotacao.Titulo)); if (nomeVotacaoExistente == null) { criarVotacao.ChaveAcesso = BCrypt.Net.BCrypt.HashPassword(criarVotacao.ChaveAcesso); Eleicao eleicao = new Eleicao(criarVotacao.Titulo, criarVotacao.Descricao, criarVotacao.ChaveAcesso, criarVotacao.VotoMultiplo, "P"); eleicao.CodEleicao = _db.GetMySequence("seq_eleicao"); UsuarioEleicao usuario_x_eleicao = new UsuarioEleicao(); usuario_x_eleicao.CodEleicao = eleicao.CodEleicao; usuario_x_eleicao.CodUsuario = usuario.CodUsuario; usuario_x_eleicao.Organizador = true; usuario_x_eleicao.VotoConcluido = false; _db.Eleicoes.Add(eleicao); _db.UsuarioEleicoes.Add(usuario_x_eleicao); _db.SaveChanges(); return(RedirectToAction("PainelEleicao", "PainelEleicao", new { id = eleicao.CodEleicao })); } ViewBag.MensagemErro = "Este título já está em uso."; return(View("CriacaoVotacao")); } return(RedirectToAction("Login", "Home")); }
public bool DeleteFuncionario(Eleicao eleicao, int funcionarioId) { Candidato candidato = eleicao.Candidatos.FirstOrDefault(x => x.FuncionarioId == funcionarioId && x.CodigoEleicao == eleicao.Codigo); if (candidato != null) { var reprovacoes = db.CandidaturasReprovadas.Where(c => c.FuncionarioId == funcionarioId && c.CodigoEleicao == eleicao.Codigo).ToList(); foreach (var reprovacao in reprovacoes) { db.CandidaturasReprovadas.Remove(reprovacao); } db.Candidatos.Remove(candidato); db.SaveChanges(); } Funcionario f = eleicao.Funcionarios.FirstOrDefault(x => x.Id == funcionarioId); if (f != null) { eleicao.Funcionarios.Remove(f); db.SaveChanges(); return(true); } return(false); }
public ICollection <VotoDTO> GetVotosBrancos(int codEleicao) { EleicoesService eleicoesService = new EleicoesService(); Eleicao eleicao = eleicoesService.GetEleicao(codEleicao); return(eleicao.VotosBrancos.Select(x => new VotoDTO(x)).ToList()); }
private void SalvaResultado(int codEleicao) { VotosService votosService = new VotosService(); ResultadoEleicao resultado = null; ResultadoDTO todos = votosService.GetResultado(codEleicao); Eleicao eleicao = GetEleicao(codEleicao); int qtdaTotal = GetQtdaFuncionarios(codEleicao); int qtdaVotos = votosService.GetQtdaVotos(codEleicao); if (((float)qtdaVotos / (float)qtdaTotal) < 0.5) { throw new VotosInsuficientesException(qtdaTotal % 2 == 1 ? (int)((qtdaTotal + 1) / 2) : (int)(qtdaTotal / 2)); } foreach (CandidatoEleitoDTO q in todos.Efetivos) { resultado = new ResultadoEleicao { CodigoEleicao = codEleicao, CodigoEmpresa = eleicao.Unidade.CodigoEmpresa, RazaoSocial = eleicao.Unidade.Empresa.RazaoSocial, MatriculaFuncionario = q.MatriculaFuncionario, Login = q.Login, Cargo = q.Cargo, Area = q.Area, DataAdmissao = q.DataAdmissao, QtdaVotos = q.QtdaVotos, Thumbnail = q.Thumbnail, Foto = db.FuncionariosFotos.Where(x => x.FuncionarioId == q.Id).FirstOrDefault()?.Foto, Efetivo = true }; db.ResultadosEleicoes.AddOrUpdate(resultado); } foreach (CandidatoEleitoDTO q in todos.Suplentes) { resultado = new ResultadoEleicao { CodigoEleicao = codEleicao, CodigoEmpresa = eleicao.Unidade.CodigoEmpresa, RazaoSocial = eleicao.Unidade.Empresa.RazaoSocial, MatriculaFuncionario = q.MatriculaFuncionario, Login = q.Login, Cargo = q.Cargo, Area = q.Area, DataAdmissao = q.DataAdmissao, QtdaVotos = q.QtdaVotos, Thumbnail = q.Thumbnail, Foto = db.FuncionariosFotos.Where(x => x.FuncionarioId == q.Id).FirstOrDefault()?.Foto, Efetivo = false }; db.ResultadosEleicoes.AddOrUpdate(resultado); } db.SaveChanges(); }
private PrazoEtapa GetProximaEtapa(Eleicao eleicao) { PrazoEtapa etapaAtual = db.PrazosEtapas.Find(eleicao.Codigo, eleicao.CodigoEtapa); return(eleicao.PrazosEtapas .Where(x => x.Ordem > etapaAtual.Ordem) .OrderBy(x => x.Ordem).FirstOrDefault()); }
private PrazoEtapa GetEtapaAnterior(PrazoEtapa prazoEtapa) { Eleicao eleicao = GetEleicao(prazoEtapa.CodigoEleicao); return(eleicao.PrazosEtapas .Where(x => x.Ordem < prazoEtapa.Ordem) .OrderByDescending(x => x.Ordem).FirstOrDefault()); }
public void NaoVotarTest() { EleitorRepositorio eleitorRepositorio = new EleitorRepositorio(); Eleicao eleicao = new Eleicao(); Eleitor eleitor = eleitorRepositorio.BuscarPorId(4004); Assert.IsFalse(eleicao.Votar(eleitor.CPF, 20102)); }
public ComunicadoSucessoMudancaEtapaService(Eleicao eleicao) : base(eleicao) { MapeamentoParametros.Add("@ETAPA_ATUAL", () => eleicao.EtapaAtual?.Nome ?? "Finalização da Eleição"); MapeamentoParametros.Add("@ETAPA_ANTERIOR", () => eleicao.EtapaAnterior?.Nome ?? "N/A - Início do Processo"); ParametrosUtilizados.Add("@EMPRESA_CNPJ"); ParametrosUtilizados.Add("@ETAPA_ATUAL"); ParametrosUtilizados.Add("@ETAPA_ANTERIOR"); }
private PrazoEtapa GetProximaEtapa(PrazoEtapa prazoEtapa) { Eleicao eleicao = GetEleicao(prazoEtapa.CodigoEleicao); return(eleicao.PrazosEtapas .Where(x => x.Ordem > prazoEtapa.Ordem) .OrderBy(x => x.Ordem).FirstOrDefault()); }
public EleicaoPainel(Eleicao eleicao) { CodEleicao = eleicao.CodEleicao; Titulo = eleicao.Titulo; Descricao = eleicao.Descricao; ChaveAcesso = eleicao.ChaveAcesso; VotoMultiplo = eleicao.VotoMultiplo; Status = eleicao.Status; }
public TotalFuncionariosEleitoresDTO GetTotalFuncionariosEleitores(Eleicao eleicao) { return(new TotalFuncionariosEleitoresDTO { CodigoEleicao = eleicao.Codigo, TotalEleitores = eleicao.Funcionarios.Count(), TotalFuncionarios = db.Funcionarios.Count() }); }
public ConviteInscricaoFormatadorService(Eleicao eleicao) : base(eleicao) { ParametrosUtilizados.Add("@EMPRESA_CNPJ"); ParametrosUtilizados.Add("@ENDERECO"); ParametrosUtilizados.Add("@GESTAO"); ParametrosUtilizados.Add("@PERIODO_INSCRICAO"); ParametrosUtilizados.Add("@TECNICO_SESMT"); ParametrosUtilizados.Add("@TECNICO_CARGO"); }
public void AtualizaEleicao(EleicaoDTO eleicao) { Eleicao e = GetEleicao(eleicao.Codigo); e.CodigoSindicato = eleicao.CodigoSindicato; e.CodigoUnidade = eleicao.CodigoUnidade; db.SaveChanges(); }
public IActionResult EditarVotacaoPost(EleicoesEdit cadastrarEleicao) { string idUser = HttpContext.Session.GetString("Id"); if (idUser != null) { var eleicao = _db.Eleicoes .FromSqlRaw("SELECT * from eleicao where cod_eleicao IN " + "(select cod_eleicao from usuario_x_eleicao where cod_usuario = '" + idUser + "' and cod_eleicao = " + cadastrarEleicao.CodEleicao + " and organizador = true)"); if (eleicao.Count() > 0) { var nomeAtual = _db.Eleicoes .Where(e => e.CodEleicao == cadastrarEleicao.CodEleicao) .Select(e => e.Titulo) .ToList() .First(); if (!nomeAtual.Equals(cadastrarEleicao.Titulo)) { var nomeExistente = _db.Eleicoes.Where(e => e.Titulo.Equals(cadastrarEleicao.Titulo)).ToList(); if (nomeExistente.Count() > 0) { ViewBag.MensagemErro = "Este título já está sendo utilizado."; return(View("EditarVotacao", cadastrarEleicao)); } } if (cadastrarEleicao.ChaveAcesso == null) { var chaveAcessoAtual = _db.Eleicoes .Where(e => e.CodEleicao == cadastrarEleicao.CodEleicao) .Select(e => e.ChaveAcesso) .ToList() .First(); cadastrarEleicao.ChaveAcesso = chaveAcessoAtual; } else { cadastrarEleicao.ChaveAcesso = BCrypt.Net.BCrypt.HashPassword(cadastrarEleicao.ChaveAcesso); } Eleicao eleicaoModel = new Eleicao(); eleicaoModel.ChaveAcesso = cadastrarEleicao.ChaveAcesso; eleicaoModel.CodEleicao = cadastrarEleicao.CodEleicao; eleicaoModel.Titulo = cadastrarEleicao.Titulo; eleicaoModel.Descricao = cadastrarEleicao.Descricao; eleicaoModel.Status = cadastrarEleicao.Status; eleicaoModel.VotoMultiplo = cadastrarEleicao.VotoMultiplo; _db.Eleicoes.Update(eleicaoModel); _db.SaveChanges(); TempData["MensagemSucesso"] = "Eleição alterada com sucesso."; return(RedirectToAction("EditarVotacao", "CriacaoVotacao", new { id = cadastrarEleicao.CodEleicao })); } return(RedirectToAction("MinhasEleicoes", "ListaEleicao")); } return(RedirectToAction("Login", "Home")); }
private void Load(Eleicao e) { EtapasService etapasService = new EtapasService(); PrazosEtapasObj = new HashSet <PrazosEtapasDTO>(); if (e == null) { return; } Codigo = e.Codigo; Gestao = e.Gestao; DataInicio = e.DataInicio; DataFechamento = e.DataFechamento; CodigoEtapa = e.CodigoEtapa; CodigoUnidade = e.CodigoUnidade; CodigoModulo = e.CodigoModulo; CodigoSindicato = e.CodigoSindicato; if (e.Modulo != null) { NomeModulo = e.Modulo.NomeModulo; } if (e.EtapaAtual != null) { NomeEtapa = e.EtapaAtual.NomeEtapa; } if (e.Unidade != null) { UnidadeObj = new UnidadeDTO(e.Unidade); } if (e.Sindicato != null) { SindicatoObj = new SindicatoDTO(e.Sindicato); } foreach (Etapa etapa in etapasService.GetEtapas(CodigoModulo)) { PrazoEtapa prazo = e.PrazosEtapas?.FirstOrDefault(x => x.CodigoEtapa == etapa.CodigoEtapa); if (e.CodigoEtapa == prazo.CodigoEtapa) { OrdemEtapa = prazo.Ordem ?? etapa.Ordem.Value; } ((HashSet <PrazosEtapasDTO>)PrazosEtapasObj).Add(new PrazosEtapasDTO { CodigoEtapa = etapa.CodigoEtapa, CodigoEleicao = Codigo, NomeEtapa = etapa.NomeEtapa, DataRealizada = prazo?.DataRealizada, DataProposta = prazo?.DataProposta, Ordem = prazo.Ordem ?? etapa.Ordem.Value, CodigoTemplate = etapa.CodigoTemplate }); } }
/// <summary> /// Verifica se o Funcionário é elegível (não pode ter sido eleito duas vezes consecutivas) /// </summary> /// <param name="c"></param> /// <returns></returns> private bool Elegivel(Candidato c, Eleicao eleicao, Funcionario func) { VotosService votosService = new VotosService(); List <ResultadoEleicao> resultados = votosService.VerificarEleicoesPorFuncionario(c.FuncionarioId, func.Login); int anoPassado = eleicao.DataInicio.Year - 1; int anoRetrasado = anoPassado - 1; return(!resultados.Any(x => x.Eleicao.DataInicio.Year == anoPassado) && !resultados.Any(x => x.Eleicao.DataInicio.Year == anoRetrasado)); }
public EditalConvocacaoFormatadorService(Eleicao eleicao) : base(eleicao) { ParametrosUtilizados.Add("@EMPRESA_CNPJ"); ParametrosUtilizados.Add("@DATA_COMPLETA"); ParametrosUtilizados.Add("@ENDERECO"); ParametrosUtilizados.Add("@PERIODO_INSCRICAO"); ParametrosUtilizados.Add("@PERIODO_VOTACAO"); ParametrosUtilizados.Add("@TECNICO_SESMT"); ParametrosUtilizados.Add("@TECNICO_CARGO"); }
public async Task <Eleicao> CadastrarEleicao(Eleicao model) { await validator.ValidateAndThrowAsync(model); await context.AddAsync(model); await context.SaveChangesAsync(); return(model); }
public ConviteVotacaoFormatadorService(Eleicao eleicao) : base(eleicao) { ParametrosUtilizados.Add("@EMPRESA_CNPJ"); ParametrosUtilizados.Add("@GESTAO"); ParametrosUtilizados.Add("@ENDERECO"); ParametrosUtilizados.Add("@CANDIDATOS"); ParametrosUtilizados.Add("@PERIODO_VOTACAO"); ParametrosUtilizados.Add("@TECNICO_SESMT"); ParametrosUtilizados.Add("@TECNICO_CARGO"); }
public Eleicao SalvarComCronograma(EleicaoDTO eleicao) { if (!unidadesService.UnidadeExiste(eleicao.CodigoUnidade)) { throw new UnidadeNaoEncontradaException(eleicao.CodigoUnidade); } if (eleicao.CodigoSindicato.HasValue && !sindicatosService.SindicatoExiste(eleicao.CodigoSindicato.Value) && eleicao.CodigoModulo == 1) { throw new SindicatoNaoEncontradoException(eleicao.CodigoSindicato.Value); } Eleicao nova = new Eleicao { CodigoEtapa = db.Etapas.Where(x => x.CodigoEtapa == db.Etapas.Where(y => y.CodigoModulo == eleicao.CodigoModulo).Min(y => y.CodigoEtapa)).FirstOrDefault()?.CodigoEtapa, CodigoUnidade = eleicao.CodigoUnidade, CodigoModulo = eleicao.CodigoModulo, Gestao = eleicao.Gestao, CodigoSindicato = eleicao.CodigoSindicato == 0 ? null : eleicao.CodigoSindicato, DataInicio = eleicao.DataInicio }; db.Eleicoes.Add(nova); PrazoEtapa EtapaAnterior = null; foreach (PrazosEtapasDTO pe in eleicao.PrazosEtapasObj.OrderBy(x => x.Ordem)) { if (EtapaAnterior != null && pe.DataProposta < EtapaAnterior.DataProposta) { throw new CronogramaInconsistenteException(pe.GetPrazoEtapa(), EtapaAnterior); } PrazoEtapa p = new PrazoEtapa { CodigoEleicao = nova.Codigo, CodigoEtapa = pe.CodigoEtapa, DataProposta = pe.DataProposta, DataRealizada = pe.DataRealizada, Ordem = pe.Ordem }; if (pe.CodigoEtapa == 1) { p.DataRealizada = DateTime.Today; } db.PrazosEtapas.Add(p); EtapaAnterior = p; } db.SaveChanges(); return(nova); }
public bool FuncionarioCadastrado(int codEleicao, string login, int funcionarioId) { Eleicao eleicao = db.Eleicoes.Find(codEleicao); if (eleicao == null) { throw new EleicaoNaoEncontradaException(); } return(eleicao.Funcionarios.Any(x => x.Login == login && x.Id == funcionarioId)); }
public IEnumerable <CandidatoFotoDTO> GetCandidatosParaValidacao(Eleicao eleicao, bool?aprovado = null) { if (eleicao.CodigoEtapa != 4 && eleicao.CodigoEtapa != 19) { throw new ForaEtapaCandidaturaException(eleicao); } return(db.Candidatos .Where(x => x.CodigoEleicao == eleicao.Codigo && aprovado == x.Validado).ToList() .Select(x => new CandidatoFotoDTO(x))); }
public void CadastrarCandidatoNaoPodeCadastrarSeAsEleicoesJaComecaram() { Candidato c = new Candidato("teste", "teste", new DateTime(2015, 11, 02), "12345", 1, "abcd", 18103, 2, true); CandidatoRepositorio cr = new CandidatoRepositorio(); bool cadastrou = cr.Cadastrar(c); Eleicao e = new Eleicao(); e.IniciarEleicao(); Assert.AreEqual(false, cadastrou); e.TerminarEleicao(); }
public Eleicao GetEleicaoPorGestaoPorUnidade(int codigoModulo, string gestao, int codigoUnidade) { Eleicao e = db.Eleicoes.Where(x => x.Gestao == gestao && x.CodigoUnidade == codigoUnidade && x.CodigoModulo == codigoModulo).FirstOrDefault(); if (e == null) { throw new EleicaoNaoEncontradaException(); } return(e); }
public Eleicao GetEleicao(int codigo) { Eleicao e = db.Eleicoes.Find(codigo); if (e == null) { throw new EleicaoNaoEncontradaException(); } return(e); }
public void VotarTest() { EleitorRepositorio eleitorRepositorio = new EleitorRepositorio(); Eleicao eleicao = new Eleicao(); Eleitor eleitor = eleitorRepositorio.BuscarPorId(4004); eleicao.IniciarEleicoes(); Assert.IsTrue(eleicao.Votar(eleitor.CPF, 20102)); eleicao.FinalizarEleicoes(); eleitor = eleitorRepositorio.BuscarPorId(4004); Assert.AreEqual('S', eleitor.Votou); eleitor.Votou = 'N'; eleitorRepositorio.Atualizar(eleitor); }
static void Main(string[] args) { int[] numeros = { -1, 0, -1, 0, 20, 20102, 20103, 30, 30200, 30300 }; int votosContabilizados = 0; Random random = new Random(); EleitorRepositorio eleitorRepositorio = new EleitorRepositorio(); Eleicao eleicao = new Eleicao(); eleicao.IniciarEleicoes(); Console.WriteLine("Eleições iniciadas"); for (int i = 4001; i < 4200; i++) { int numero = (int)(random.NextDouble() * 10); Eleitor eleitor = eleitorRepositorio.BuscarPorId(i); if (eleicao.Votar(eleitor.CPF, numeros[numero])) { Console.WriteLine(eleitor.Nome + " votou"); votosContabilizados++; } } eleicao.FinalizarEleicoes(); Console.WriteLine("Eleições finalizadas"); Console.WriteLine("\nBuscando estatísticas\n"); IList<Estatistica> estatisticas = new EstatisticaRepositorio().BuscarEstatisticas(); foreach (Estatistica estatistica in estatisticas) { Console.WriteLine(estatistica.ToString() + "\n"); } Console.WriteLine("\nPronto. {0} votos contabilizados", votosContabilizados); Console.WriteLine(Estatistica.PorcentagemEquivalente(estatisticas)); Console.Read(); }