//Validacoes de Cadastro/Edição
        public bool Salvar(Titulo titulo)
        {
            JuntarApensarBus _juntarApensarBus = new JuntarApensarBus();

            Titulo(titulo);

            if (titulo.Id <= 0 && titulo.Protocolo.Id > 0)
            {
                ProtocoloSetorModelo(titulo, titulo.Setor.Id);
            }

            if (titulo.Id > 0 && titulo.Situacao.Id != 1)
            {
                if (String.IsNullOrEmpty(titulo.Situacao.Texto) && titulo.Situacao.Id > 0)
                {
                    titulo.Situacao = _configTitulo.Obter <List <Situacao> >(ConfiguracaoTitulo.KeySituacoes).Single(x => x.Id == titulo.Situacao.Id);
                }
                Validacao.Add(Mensagem.Titulo.SituacaoEditar(titulo.Situacao.Texto));
            }

            //Esta validação deve ser feita para cadastrar/Editar pois na edição do titulo deve existir a
            //possibilidade de alterar o protocolo para o processo pai
            //Esta validação não pode ser feita no botao editar do listar
            #region Validacao de Juntado/Apensado

            if (titulo.Protocolo != null && titulo.Protocolo.Id > 0)
            {
                string numero = _protocoloValidar.ObterNumeroProcessoPai(titulo.Protocolo.Id.Value);
                if (!String.IsNullOrEmpty(numero))
                {
                    Validacao.Add(titulo.Protocolo.IsProcesso ? Mensagem.Titulo.ProcessoJuntado(numero) : Mensagem.Titulo.DocumentoApensado(numero));
                }
            }

            #endregion

            #region [ Cadastro Ambiental Rural ]
            if (LstCadastroAmbientalRuralTituloCodigo.Any(x => x == titulo.Modelo.Codigo))
            {
                var busCARSolicitacao = new CARSolicitacaoBus();
                if (!busCARSolicitacao.VerificarSeEmpreendimentoPossuiSolicitacaoEmCadastro(titulo.EmpreendimentoId.GetValueOrDefault()))
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.TituloPossuiSolicitacaoEmCadastro);
                }
                if (!busCARSolicitacao.VerificarSeEmpreendimentoPossuiSolicitacaoValidaEEnviada(titulo.EmpreendimentoId.GetValueOrDefault()))
                {
                    Validacao.Add(Mensagem.TituloAlterarSituacao.TituloNaoPossuiSolicitacaoDeInscricao);
                }
            }
            #endregion

            #region [ Autorização de Exploração ]
            if (titulo.Modelo.Codigo == (int)eTituloModeloCodigo.AutorizacaoExploracaoFlorestal)
            {
                if ((titulo.Exploracoes?.Count ?? 0) == 0)
                {
                    Validacao.Add(Mensagem.AutorizacaoExploracaoFlorestal.ExploracaoInexistente);
                }
            }
            #endregion

            return(Validacao.EhValido);
        }