예제 #1
0
        public List <ResultadoEleicao> VerificarEleicoesPorFuncionario(int funcionarioId, string login)
        {
            FuncionariosService funcService = new FuncionariosService();
            Funcionario         funcionario = funcService.GetFuncionario(funcionarioId);

            return(db.ResultadosEleicoes
                   .Where(x => x.Login == login && x.MatriculaFuncionario == funcionario.MatriculaFuncionario && x.CodigoEmpresa == funcionario.CodigoEmpresa).ToList());
        }
        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);
        }
예제 #3
0
        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);
        }