/// <summary>
        /// Busca os funcionarios pelo tipo
        /// </summary>
        /// <param name="tipo">enumerador do tipo de funcionario</param>
        /// <returns>Retorna uma lista de funcionarios</returns>
        public static List <Funcionario> GetFuncionariosTipados(EnumTipoFuncionario tipo)
        {
            List <Funcionario> listaRetorno = new List <Funcionario>();

            if (tipo == EnumTipoFuncionario.Funcionario)
            {
                string[] linhas = File.ReadAllLines(CAMINHOARQUIVOFUNCIONARIO);

                foreach (string linha in linhas)
                {
                    Funcionario f = MontaFuncionario(linha);
                    if (f.Tipo == 'F')
                    {
                        listaRetorno.Add(MontaFuncionario(linha));
                    }
                }
            }
            else if (tipo == EnumTipoFuncionario.Gerente)
            {
                string[] linhas = File.ReadAllLines(CAMINHOARQUIVOFUNCIONARIO);

                foreach (string linha in linhas)
                {
                    Funcionario f = MontaFuncionario(linha);
                    if (f.Tipo == 'G')
                    {
                        listaRetorno.Add(MontaFuncionario(linha));
                    }
                }
            }
            return(listaRetorno);
        }
 public void CadastraFuncionario(string nome,
                                 float salarioContratual,
                                 DateTime dataAdmissao,
                                 EnumTipoFuncionario enumTipoFuncionario)
 {
     SalveFuncionario(nome, salarioContratual, dataAdmissao, enumTipoFuncionario, null);
 }
Example #3
0
        public static Funcionario Crie(string nome,
                                       float salarioContratual,
                                       DateTime dataAdmissao,
                                       EnumTipoFuncionario enumTipoFuncionario,
                                       CNH cnh)
        {
            Funcionario funcionario = null;

            switch (enumTipoFuncionario)
            {
            case EnumTipoFuncionario.AUTONOMO:
                funcionario = new FuncionarioAutonomo(nome, 0, salarioContratual, dataAdmissao);
                break;

            case EnumTipoFuncionario.CLT:
                funcionario = new FuncionarioCLT(nome, 0, salarioContratual, dataAdmissao);
                break;

            case EnumTipoFuncionario.PROLABORE:
                funcionario = new FuncionarioProlabore(nome, 0, salarioContratual, dataAdmissao);
                break;

            case EnumTipoFuncionario.INTERMITENTE:
                funcionario = new FuncionarioIntermitente(nome, 0, salarioContratual, dataAdmissao);
                break;

            default:
                throw new ArgumentException("Tipo nao mapeado na fabrica");
            }
            funcionario.CNH = cnh;
            return(funcionario);
        }
 public TabelaDeFuncionarios(string matricula, EnumTipoFuncionario tipoFuncionario, string nome, double salario, DateTime dataAdmissao, string cargo)
 {
     Matricula       = matricula;
     Nome            = nome;
     Salario         = salario;
     DataAdmissao    = dataAdmissao;
     Cargo           = cargo;
     TipoFuncionario = tipoFuncionario;
 }
 public void CadastrarFuncionario(Funcionario funcionario, EnumTipoFuncionario tipoFuncionario)
 {
     try
     {
         Validacao.Valide(funcionario);
         BancoDeDadosEmMemoria <TabelaDeFuncionarios> .Singleton.Inserir(new TabelaDeFuncionarios(funcionario.Matricula, tipoFuncionario, funcionario.Nome,
                                                                                                  funcionario.Salario, funcionario.DataAdmissao, funcionario.Cargo));
     }
     catch (ValidacaoException erro)
     {
         MantenedorDeErros.GravarErros(erro.ListaDeErros);
     }
 }
        private void SalveFuncionario(string nome,
                                      float salarioContratual,
                                      DateTime dataAdmissao,
                                      EnumTipoFuncionario enumTipoFuncionario,
                                      CNH cnh)
        {
            if (ValidaCNH(cnh))
            {
                throw new ArgumentException();
            }

            Funcionario funcionario = FabricaFuncionarios.Crie(nome,
                                                               salarioContratual,
                                                               dataAdmissao,
                                                               enumTipoFuncionario,
                                                               cnh);
            var mensagens = ValidadorGenerico.ValideGenerico(funcionario);

            if (!mensagens.Any())
            {
                repositorioFuncionario.Insert(funcionario);
            }
        }