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); }
/// <summary> /// Cria um usuário administrador. /// </summary> /// <param name="user"></param> public void PostAdministrador(UsuarioDTO user) { bool funcionarioExistente = false; user.Login = user.Login.Trim().ToLower(); user.Email = user.Email.Trim().ToLower(); Usuario userBD = db.Usuarios.Find(user.Login); if (user.FuncionarioId.HasValue) { funcionarioExistente = funcionariosService.FuncionarioExiste(user.FuncionarioId.Value); } else { funcionarioExistente = funcionariosService.FuncionarioExiste(user.MatriculaFuncionario, user.CodigoEmpresa); } if (!funcionarioExistente) { Funcionario funcLogin = funcionariosService.GetByLogin(user.Login); if (funcLogin != null) { throw new Exception("Já existe outro usuário cadastrado com esse Login!"); } Funcionario funcionario = new Funcionario() { MatriculaFuncionario = user.MatriculaFuncionario, Nome = user.Nome, Email = user.Email, Login = user.Login, CodigoEmpresa = user.CodigoEmpresa }; funcionariosService.AddOrUpdateFuncionario(funcionario); } else { Funcionario func = null; if (user.FuncionarioId.HasValue) { func = funcionariosService.GetFuncionario(user.FuncionarioId.Value); } else { func = funcionariosService.GetFuncionario(user.MatriculaFuncionario, user.CodigoEmpresa); } func.CodigoEmpresa = user.CodigoEmpresa; func.Nome = user.Nome; func.Email = user.Email; funcionariosService.AddOrUpdateFuncionario(func); } if (userBD != null) { userBD.Nome = user.Nome; userBD.Perfil = Perfil.ADMINISTRADOR; userBD.Empresas.Clear(); AddEmpresas(userBD, user.Empresas.Select(e => e.Codigo).ToList()); db.SaveChanges(); return; } userBD = new Usuario { Nome = user.Nome, Login = user.Login, FuncionarioId = user.FuncionarioId, Perfil = Perfil.ADMINISTRADOR }; db.Usuarios.Add(userBD); db.SaveChanges(); AddEmpresas(userBD, user.Empresas.Select(e => e.Codigo).ToList()); db.SaveChanges(); }
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); }