public ICollection <EleitorDTO> RelatorioEleitores(int codEleicao, string pesquisa = null) { EleicoesService eleicoesService = new EleicoesService(); if (!eleicoesService.EleicaoExiste(codEleicao)) { throw new EleicaoNaoEncontradaException(); } ICollection <EleitorDTO> votos = db.Votos.ToList() .Where(x => x.CodigoEleicao == codEleicao) .OrderByDescending(x => x.DataHorario) .Select(x => new EleitorDTO(x)).ToList(); ICollection <EleitorDTO> emBranco = db.VotosBrancos.ToList() .Where(x => x.CodigoEleicao == codEleicao) .Select(x => new EleitorDTO(x)).ToList(); ICollection <EleitorDTO> union = votos.Union(emBranco).ToList(); if (string.IsNullOrWhiteSpace(pesquisa)) { return(union); } else { pesquisa = pesquisa.ToLower().Trim(); return(union.Where(e => e.Nome.ToLower().Contains(pesquisa)).ToList()); } }
public ICollection <VotoDTO> GetVotosBrancos(int codEleicao) { EleicoesService eleicoesService = new EleicoesService(); Eleicao eleicao = eleicoesService.GetEleicao(codEleicao); return(eleicao.VotosBrancos.Select(x => new VotoDTO(x)).ToList()); }
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)); }
public VotoBranco RegistrarVotoBranco(VotoBranco voto) { EleicoesService eleicoesService = new EleicoesService(); voto.IP = HttpContext.Current.Request.UserHostAddress; voto.DataHorario = HelpersMethods.HorarioBrasilia(); if (!eleicoesService.FuncionarioExiste(voto.CodigoEleicao, voto.FuncionarioIdEleitor)) { throw new FuncionarioNaoEncontradoException(voto.FuncionarioIdEleitor); } db.VotosBrancos.Add(voto); db.SaveChanges(); return(voto); }
public Candidato AddOrUpdateCandidato(Candidato c) { FuncionariosService funcService = new FuncionariosService(); EleicoesService eleicoesService = new EleicoesService(); //Adiciona ao contexto, ou atualiza Eleicao eleicao = eleicoesService.GetEleicao(c.CodigoEleicao); Funcionario func = funcService.GetFuncionario(c.FuncionarioId); if (eleicao.Funcionarios.Count(x => x.Id == c.FuncionarioId) <= 0) { throw new FuncionarioNaoCadastradoEleicaoException(c.FuncionarioId, c.CodigoEleicao); } if (!Elegivel(c, eleicao, func)) { throw new FuncionarioNaoElegivelException("Não é permitida a inscrição de funcionários eleitos nas duas útlimas gestões!"); } string modulo = eleicao.CodigoModulo == 2 ? "a Comissão Interna de Trabalhadores" : "a CIPA"; EmailDTO email = new EmailDTO { Message = EmailService.ReplaceParams(Resources.Emails.EmailConfirmacaoCandidatura, Tuple.Create("@MODULO", modulo), Tuple.Create("@NOME", func.Nome), Tuple.Create("@CARGO", func.Cargo), Tuple.Create("@AREA", func.Area)), To = new List <string> { func.Email }, Copy = func.Gestor != null ? new List <string> { func.Gestor.Email } : new List <string> { }, Subject = "Candidatura Realizada" }; Thread th = new Thread(EmailService.Send); th.Start(email); db.Candidatos.AddOrUpdate(c); db.SaveChanges(); return(c); }
public Candidato GetCandidato(int funcionarioId, int codEleicao) { EleicoesService eleicoesService = new EleicoesService(); if (!eleicoesService.FuncionarioExiste(codEleicao, funcionarioId)) { throw new FuncionarioNaoCadastradoEleicaoException(funcionarioId, codEleicao); } IEnumerable <Candidato> teste = db.Candidatos.Where(x => funcionarioId == x.FuncionarioId); Candidato c = db.Candidatos.Find(funcionarioId, codEleicao); if (c == null) { throw new CandidatoNaoEncontradoException(); } return(c); }
public ICollection <QtdaVotosDTO> QtdaVotosPorCandidato(int codEleicao) { EleicoesService eleicoesService = new EleicoesService(); Eleicao eleicao = eleicoesService.GetEleicao(codEleicao); ICollection <QtdaVotosDTO> votos = (from cand in db.Candidatos.Where(x => x.CodigoEleicao == codEleicao && x.Validado.HasValue && x.Validado.Value).ToList() select new QtdaVotosDTO(cand, db.Votos.Count(y => y.FuncionarioIdCandidato == cand.FuncionarioId && y.CodigoEleicao == codEleicao))) .OrderBy(x => x.Candidato.Nome).OrderBy(x => x.Candidato.DataAdmissao).OrderByDescending(x => x.QtdaVotos).ToList(); votos.Add(new QtdaVotosDTO { Candidato = new CandidatoDTO { Nome = "(EM BRANCO)", }, QtdaVotos = db.VotosBrancos.Count(x => x.CodigoEleicao == codEleicao) }); return(votos); }
public ResultadoDTO GetResultado(int codEleicao) { EleicoesService eleicoesService = new EleicoesService(); EleicaoQtdaRepresentantesDTO qtda = eleicoesService.GetQtdaRepresentantes(codEleicao); IEnumerable <CandidatoEleitoDTO> query = db.Candidatos.Where(x => x.CodigoEleicao == codEleicao).ToList() .Select(x => new CandidatoEleitoDTO(x, db.Votos.Count(y => y.FuncionarioIdCandidato == x.FuncionarioId && y.CodigoEleicao == codEleicao))) .OrderByDescending(x => x.QtdaVotos).ThenBy(x => x.DataAdmissao).ThenBy(x => x.DataNascimento).ThenBy(x => x.Nome).Take(qtda.Efetivos + qtda.Suplentes); if (query.Count() < (qtda.Suplentes + qtda.Efetivos)) { throw new CandidatosInsuficientesException(query.Count(), qtda.Efetivos, qtda.Suplentes); } ResultadoDTO resultado = new ResultadoDTO { Efetivos = query.Take(qtda.Efetivos).ToList(), Suplentes = query.Reverse().Take(qtda.Suplentes).Reverse().ToList() }; return(resultado); }
public List <InconsistenciaFuncionarioDTO> ExecutarImportacaoFuncionarios(int codEleicao) { DataSet ds; Conectar(); db = new Modelo(); string tab = ""; EleicoesService eleicoeService = new EleicoesService(); if (!eleicoeService.EleicaoExiste(codEleicao)) { throw new Exception("Código de Eleição não encontrado!"); } List <InconsistenciaFuncionarioDTO> retorno = new List <InconsistenciaFuncionarioDTO>(); try { conexao.Open(); tab = "Funcionários"; adapter = new OleDbDataAdapter("select * from[" + tab + "$]", conexao); ds = new DataSet() { DataSetName = tab }; try { adapter.Fill(ds); retorno = ImportacaoFuncionarios(ds, codEleicao); } catch (OleDbException e) { if (e.Message.Split(new char[] { '.' })[0] != "'" + tab + "' is not a valid name") { throw; } } } catch (ResourceNotFoundException e) { throw new Exception("'" + e.Resource + "' não informado! '" + e.Resource + "' é um campo obrigatório. (Linha " + e.Linha + ")"); } catch (FormatoDataInvalidoException e) { throw new Exception("Data em formato inválido: " + e.DataValor + ". (Linha " + e.Linha + ")"); } catch (ExcelException e) { throw new Exception("Erro ao importar linha " + e.Linha + ". Mensagem: " + e.Message); } catch (OleDbException e) { throw new Exception("Erro ao salvar os dados: " + e.Message); } catch { throw new Exception("Ocorreu um erro inesperado!"); } finally { Desconectar(); } db.Dispose(); return(retorno); }
public List <InconsistenciaFuncionarioDTO> ImportacaoFuncionarios(DataSet ds, int codEleicao) { int l = 2; FuncionariosService funcService = new FuncionariosService(); UsuariosService userService = new UsuariosService(); EleicoesService eleicoesService = new EleicoesService(); GestoresService gestoresService = new GestoresService(); //List<InconsistenciaFuncionarioDTO> inconsistencias = new List<InconsistenciaFuncionarioDTO>(); //Guarda os funcionários com a mesma matrícula com Login's diferentes HashSet <string> notRequiredFields = new HashSet <string> { "Email", "Nome do Gestor" }; try { Eleicao eleicao = eleicoesService.GetEleicao(codEleicao); foreach (DataRow r in ds.Tables[0].Rows) { //Condição de parada if (r[1] == null || r[1].ToString() == "") { return(null); } //Validações foreach (DataColumn c in ds.Tables[0].Columns) { if (!notRequiredFields.Contains(c.ColumnName)) { if (r[c.ColumnName] == null || r[c.ColumnName].ToString() == "") { throw new ResourceNotFoundException(ds.DataSetName, l, c.ColumnName); } } } if (!DateTime.TryParse(r[5].ToString(), out DateTime dataAdmissao)) { throw new FormatoDataInvalidoException(ds.DataSetName, l, r[5].ToString()); } if (!DateTime.TryParse(r[6].ToString(), out DateTime dataNascimento)) { throw new FormatoDataInvalidoException(ds.DataSetName, l, r[6].ToString()); } Gestor gestor = null; if (r[8].ToString() == "") { gestor = null; } else { gestor = gestoresService.Get(r[8].ToString()); if (gestor == null) { throw new GestorNaoEncontradoException(r[8].ToString()); } } string login = r[1].ToString().Trim().ToLower(); string matricula = r[0].ToString(); Funcionario func = new Funcionario { MatriculaFuncionario = matricula, Login = login, Nome = r[2].ToString(), Cargo = r[3].ToString(), Area = r[4].ToString(), DataAdmissao = dataAdmissao, DataNascimento = dataNascimento, CodigoGestor = gestor?.Codigo, Email = r[7].ToString(), CodigoEmpresa = eleicao.Unidade.CodigoEmpresa }; Funcionario funcMatricula = null; try { funcMatricula = funcService.GetFuncionario(matricula, eleicao.Unidade.CodigoEmpresa); if (funcMatricula.Login != login) { throw new Exception($"O funcionario {func.Nome} (matrícula {matricula}) já está cadastrado com o login {funcMatricula.Login}. Altere a planilha ou altere o registro atual em \"Base Geral\"."); } } catch (FuncionarioNaoEncontradoException) { } Funcionario atual = funcService.GetByLogin(login); if (atual == null || atual.MatriculaFuncionario == matricula) { if (atual != null) { func.Id = atual.Id; } funcService.AddOrUpdateFuncionario(func); } else { throw new Exception($"Já existe um funcionário cadastrado com o login {login}! Matrícula: {atual.MatriculaFuncionario}."); } Usuario usuario = null; try { usuario = userService.GetUsuario(login); usuario.FuncionarioId = atual.Id; usuario.Nome = func.Nome; userService.AddOrUpdateUsuario(usuario); } catch (UsuarioNaoEncontradoException) { } eleicoesService.AddFuncionario(codEleicao, func.Id); l++; } } catch (ResourceNotFoundException e) { throw e; } catch (FormatoDataInvalidoException e) { throw e; } catch (Exception e) { throw new ExcelException(e.Message, ds.DataSetName, l); } return(null); }