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); }
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; }
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 }; }
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); }
private Field GetContentIdField(Documento content) { return new Field( "documentoId", content.Id.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED); }
private Field GetAssuntoDocumento(Documento content) { return new Field( "assunto", content.Assunto, Field.Store.NO, Field.Index.ANALYZED); }
private Field GetTipoDocumento(Documento content) { return new Field( "tipoDocumentoId", content.TipoDocumento.Id.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED); }
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); }
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); }
public void Iniciar(Documento documento) { var workflow = Workflow.Novo(documento, sessaoDoUsuario.UsuarioAtual); this.workflowRepositorio.Salvar(workflow); }