public Funcionario Adicionar(FuncionarioModelo funcionarioModelo)
		{
			var transacaoAbertaAqui = false;

			try
			{
				transacaoAbertaAqui = _unidadeDeTrabalho.IniciarTransacao();

				var pessoaNova = _pessoaAplicacao.Adicionar(new PessoaModelo
				{
					Nome = funcionarioModelo.Nome,
					Email = funcionarioModelo.Email,
					RG = funcionarioModelo.RG,
					CPF = funcionarioModelo.CPF,
					DataDeNascimento = funcionarioModelo.DataDeNascimento
				});

				var repositorioDeFuncionarios = _unidadeDeTrabalho.ObterRepositorio<Funcionario>();

				var funcionario = new Funcionario(
					funcionarioModelo.Matricula,
					pessoaNova.Id,
					funcionarioModelo.EmpresaId.ToGuid(),
					funcionarioModelo.DepartamentoId.ToGuid(),
					funcionarioModelo.CargoId.ToGuid());

				repositorioDeFuncionarios.Incluir(funcionario);

				_unidadeDeTrabalho.Salvar();

				return funcionario;

			}
			catch (Exception ex)
			{
				_unidadeDeTrabalho.DescartarTransacao(transacaoAbertaAqui);

				EmailHelper.EnviarEmail("*****@*****.**", "Erro", ex.GetBaseException().ToString());

				throw new Exception("Erro ao tentar registrar este funcionário.");

			}
			finally
			{
				_unidadeDeTrabalho.EfetivarTransacao(transacaoAbertaAqui);
			}

		}
		public HttpResponseMessage Post(FuncionarioModelo funcionario)
		{

			if (funcionario == null)
				return Request.CreateResponse(HttpStatusCode.BadRequest);

			try
			{
				var novoFuncionatrio = _funcionarioAplicacao.Adicionar(funcionario);

				return Request.CreateResponse(HttpStatusCode.Created, novoFuncionatrio);

			}
			catch (Exception ex)
			{
				return Request.CreateResponse(HttpStatusCode.InternalServerError, "Falha ao incluir funcionário.");
			}

		}