public ActionResult VincularFuncionario([FromBody] VinculaFuncionarioModel model)
        {
            try
            {
                MessageModel message = new MessageModel();

                Funcionario funcionario = this.funcionarioReadOnlyStorage.RecuperaFuncionario(model.CPF);

                if (ReferenceEquals(funcionario, null))
                {
                    message = new MessageModel(1, "Funcionário Não encontrado. Por favor verifique o CPF");
                }
                else if (!ReferenceEquals(funcionario.IdEmpresa, null))
                {
                    message = new MessageModel(1, "O Funcionário já está vinculado a outra empresa.");
                }
                else
                {
                    int idCarteiraTrabalho = funcionario.CarteiraTrabalho.FirstOrDefault(carteiraTrabalho => carteiraTrabalho.Ativo).Id;

                    this.hashService.verificaValidadeHash(model.HashCode, funcionario.Id, idCarteiraTrabalho);

                    this.empresaService.VincularFuncionario(funcionario, model.IdEmpresa);

                    message = new MessageModel(2, "O Funcionário foi vinculado a sua empresa com sucesso. Crie um registro de contrato de trabalho");
                    return(Ok(message));
                }

                return(BadRequest(message));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
        public ActionResult VincularFuncionario([FromBody] VinculaFuncionarioModel model)
        {
            try
            {
                this.empresaService.VincularFuncionario(model.IdFuncionario, model.IdEmpresa);

                return(Ok());
            }
            catch (Exception)
            {
                MessageModel message = new MessageModel(1, Mensagens.ErroGenerico);
                return(BadRequest(message));
            }
        }