Exemple #1
0
        private void AddDocument(Documento documento, IList<Indexacao> indexacao)
        {
            var luceneDocument = new Document();

            luceneDocument.Add(this.GetContentIdField(documento));
            luceneDocument.Add(this.GetIndexacaoField(indexacao));
            luceneDocument.Add(this.GetCpfCnpj(documento));

            if (documento.TipoDocumento != null)
            {
                luceneDocument.Add(this.GetTipoDocumento(documento));
            }

            if (string.IsNullOrEmpty(documento.Assunto) == false)
            {
                luceneDocument.Add(this.GetAssuntoDocumento(documento));
            }

            if (documento.DataCriacao != null)
            {
                luceneDocument.Add(this.GetDataCriacao(documento));
            }

            this.luceneSession.Current.AddDocument(luceneDocument);
        }
        public void DeveIndexarUmDocumento()
        {
            var salusSearch = new SalusElasticSearch();
            var tiago = new Usuario { Id = 57, Nome = "Tiago Sousa Brito" };

            var indexacao = new List<Indexacao>
            {
                new Indexacao { Valor = "2000841 df" },
                new Indexacao { Valor = "01/2016" },
                new Indexacao { Valor = "The look of love" }
            };

            var carta = new TipoDocumento { Id = 8, Nome = "Carta" };

            var documento = new Documento
            {
                Id = 1324546,
                Assunto = "Teste de Indexacao",
                CpfCnpj = "70638373115",
                DataCriacao = DateTime.Parse("01/12/1998"),
                Indexacao = indexacao,
                Usuario = tiago,
                TipoDocumento = carta
            };

            salusSearch.Indexar(documento);
        }
        public void Salvar([FromBody]IEnumerable<IndexacaoViewModel> indexacaoModel)
        {
            var tipodocumentoId = indexacaoModel.First().TipoDocumentoId;
            var tipoDocumento = this.tipoDocumentoRepositorio.ObterPorId(tipodocumentoId);
            var documento = new Documento
            {
                Assunto = tipoDocumento.Nome,
                Bloqueado = false,
                DataCriacao = DateTime.Now,
                EhIndice = false,
                EhPreIndexacao = true,
                SearchStatus = SearchStatus.ToIndex,
                TipoDocumento = tipoDocumento,
                Usuario = this.sessaoDoUsuario.UsuarioAtual
            };

            this.documentoRepositorio.Salvar(documento);

            foreach (var index in indexacaoModel)
            {
                var indexacao = new Indexacao();
                indexacao.Chave = new Chave { Id = index.CampoId };
                indexacao.Documento = documento;
                indexacao.Valor = index.Valor;

                this.indexacaoRepositorio.Salvar(indexacao);
            }

            this.logarAcaoSistema.Execute(
              TipoTrilha.Criacao,
              "Preindexacao de documento",
              "Documento foi criado #" + documento.Id);
        }
Exemple #4
0
        public Documento CriaNovo(FileViewModel arquivo)
        {
            var documento = new Documento();

            documento.DataCriacao = DateTime.Now;
            documento.Assunto = "(Sem Assunto)";
            documento.Tamanho = 0;
            documento.Usuario = this.sessaoDoUsuario.UsuarioAtual;

            this.documentoRepositorio.Salvar(documento);

            return documento;
        }
Exemple #5
0
 public static Workflow Novo(Documento documento, Usuario usuarioAtual)
 {
     return new Workflow
     {
         Documento = documento,
         Status = 0,
         Para = usuarioAtual,
         De = usuarioAtual,
         Mensagem = "Documento Importado",
         CriadoEm = DateTime.Now,
         FinalizadoEm = null,
         Lido = false
     };
 }
Exemple #6
0
        public SearchStatus Index(Documento Documento, IList<Indexacao> indexacao)
        {
            try
            {
                this.DeleteContentIfExist(Documento.Id);
                this.AddDocument(Documento, indexacao);
            }
            catch (Exception exception)
            {
                Log.App.Error("Erro ao indexar documento #" + Documento.Id, exception);

                return SearchStatus.TryIndexAgain;
            }

            return SearchStatus.Indexed;
        }
        public bool PossuiAcesso(IList<AcessoDocumento> acessos, Documento documento)
        {
            ////pode acessar o documento se foi o próprio usuario quem o criou
            if (documento.Usuario == this.sessaoDoUsuario.UsuarioAtual)
            {
                return true;
            }

            ////se o documento não foi tipado não deve ser acesso por outra pessoa além do proprietario
            if (documento.TipoDocumento == null)
            {
                return false;
            }

            foreach (var acesso in acessos)
            {
                if (acesso.TipoDocumento.Id == documento.TipoDocumento.Id)
                {
                    if (this.sessaoDoUsuario.UsuarioAtual.Area.Segura)
                    {
                        if (documento.Usuario.Area == this.sessaoDoUsuario.UsuarioAtual.Area)
                        {
                            return true;
                        }
                        else
                        {
                            return false;
                        }
                    }

                    return true;
                }
            }

            return false;
        }
        public void ProprietarioDoDocumentoTemAcessoAoDocumento()
        {
            var usuarioRepositorio = MockRepository.GenerateStub<ISessaoDoUsuario>();
            var acessoDocumentoRepositorio = MockRepository.GenerateStub<IAcessoDocumentoRepositorio>();
            var documentoRepositorio = MockRepository.GenerateStub<IDocumentoRepositorio>();

            var autorizacao = new AutorizaVisualizacaoDocumento(
                usuarioRepositorio,
                acessoDocumentoRepositorio,
                documentoRepositorio);

            usuarioRepositorio.Stub(x => x.UsuarioAtual).Return(tiago);

            var acessos = new List<AcessoDocumento>();

            var documento = new Documento
            {
                Usuario = tiago
            };

            var podeAcessar = autorizacao.PossuiAcesso(acessos, documento);

            Assert.AreEqual(podeAcessar, true);
        }
Exemple #9
0
 private Field GetContentIdField(Documento content)
 {
     return new Field(
         "documentoId",
         content.Id.ToString(),
         Field.Store.YES,
         Field.Index.NOT_ANALYZED);
 }
Exemple #10
0
 private Field GetAssuntoDocumento(Documento content)
 {
     return new Field(
        "assunto",
        content.Assunto,
        Field.Store.NO,
        Field.Index.ANALYZED);
 }
Exemple #11
0
 private Field GetTipoDocumento(Documento content)
 {
     return new Field(
         "tipoDocumentoId",
         content.TipoDocumento.Id.ToString(),
         Field.Store.YES,
         Field.Index.NOT_ANALYZED);
 }
Exemple #12
0
        private Field GetDataCriacao(Documento documento)
        {
            var data = (DateTime)documento.DataCriacao;

            var dateValue = DateTools.DateToString(
                data,
                DateTools.Resolution.DAY);

            return new Field(
                "dataCriacao",
                dateValue,
                Field.Store.NO,
                Field.Index.NOT_ANALYZED);
        }
Exemple #13
0
        private Field GetCpfCnpj(Documento content)
        {
            string valorCpf = content.CpfCnpj;

            if (string.IsNullOrEmpty(valorCpf))
            {
                try
                {
                    var cpf = content.Indexacao.FirstOrDefault(x => x.Chave.TipoDado == TipoDado.CpfCnpj);

                    if (cpf == null)
                    {
                        valorCpf = "999999999";
                    }
                    else
                    {
                        valorCpf = cpf.Valor;
                    }
                }
                catch (Exception)
                {
                    valorCpf = "999999999";
                }

            }

            return new Field(
                "cpfCnpj",
                valorCpf,
                Field.Store.YES,
                Field.Index.ANALYZED);
        }
Exemple #14
0
 public void Iniciar(Documento documento)
 {
     var workflow = Workflow.Novo(documento, sessaoDoUsuario.UsuarioAtual);
     this.workflowRepositorio.Salvar(workflow);
 }