Example #1
0
        /// <summary>
        /// Obtiene los directorios contenidos en una carpeta de repositorio asincrónicamente
        /// </summary>
        /// <param name="directorio">Objeto que representa una carpeta</param>
        /// <param name="sesion">Objeto de sesión del repositorio</param
        ///
        /// <returns>Lista de documentos</returns>
        public static Task <IEnumerable <DocumentoRepositorio> > ExtraerDirectoriosAsync(this DocumentoRepositorio directorio, object sesion = null)
        {
            if (!directorio.Directorio)
            {
                throw new Exception("No es directorio");
            }

            return(Task.Run <IEnumerable <DocumentoRepositorio> >(() =>
            {
                if (directorio.Repositorio == Repositorio.Laserfiche)
                {
                    FolderInfo directorioAsociado = (FolderInfo)directorio.DocumentoAsociado;
                    var ens = new EntryListingSettings();
                    ens.EntryFilter = EntryTypeFilter.Folders;
                    ens.AddColumn(SystemColumn.Name);
                    ens.AddColumn(SystemColumn.Uuid);
                    FolderListing listado = directorioAsociado.OpenFolderListing(ens);

                    List <DocumentoRepositorio> documentoRepositorios = new List <DocumentoRepositorio>();


                    for (int registro = 1; registro <= listado.RowCount; registro++)
                    {
                        DocumentoRepositorio documentoRepositorio = new DocumentoRepositorio();
                        EntryInfo informacionEntrada = listado.GetEntryInfo(registro);



                        documentoRepositorio.Directorio = informacionEntrada.EntryType == EntryType.Folder;
                        DocumentInfo documentInfo = null;
                        FolderInfo folderInfo = null;
                        if (documentoRepositorio.Directorio)
                        {
                            folderInfo = Folder.GetFolderInfo(informacionEntrada.Id, (Session)sesion);
                            documentoRepositorio.DocumentoAsociado = folderInfo;
                        }
                        else
                        {
                            documentInfo = Document.GetDocumentInfo(informacionEntrada.Id, (Session)sesion);
                            documentoRepositorio.DocumentoAsociado = documentInfo;
                        }
                        documentoRepositorio.Repositorio = Repositorio.Laserfiche;
                        documentoRepositorio.Nombre = documentoRepositorio.Directorio ? folderInfo.Name : documentInfo.Name;
                        //documentoRepositorio.Plantilla = documentInfo.TemplateName;
                        documentoRepositorio.Ruta = folderInfo.Path;
                        documentoRepositorios.Add(documentoRepositorio);
                    }


                    return documentoRepositorios;
                }

                return new List <DocumentoRepositorio>();
            }));
        }
Example #2
0
        public static IEnumerable <DocumentoRepositorio> RecuperarDocumentos(this DocumentoRepositorio directorio, Session sesion)
        {
            if (!directorio.Directorio)
            {
                throw new Exception("No es directorio");
            }


            if (directorio.Repositorio == Repositorio.Laserfiche)
            {
                FolderInfo directorioAsociado = (FolderInfo)directorio.DocumentoAsociado;
                var        ens = new EntryListingSettings();
                ens.EntryFilter = EntryTypeFilter.Documents;
                ens.AddColumn(SystemColumn.Name);
                ens.AddColumn(SystemColumn.Uuid);
                FolderListing listado = directorioAsociado.OpenFolderListing(ens);

                List <DocumentoRepositorio> documentoRepositorios = new List <DocumentoRepositorio>();

                DocumentoRepositorio documentoRepositorio = new DocumentoRepositorio();

                for (int registro = 1; registro <= listado.RowCount; registro++)
                {
                    EntryInfo informacionEntrada = listado.GetEntryInfo(registro);



                    documentoRepositorio.Directorio = informacionEntrada.EntryType == EntryType.Folder;
                    DocumentInfo documentInfo = null;
                    FolderInfo   folderInfo   = null;
                    if (documentoRepositorio.Directorio)
                    {
                        folderInfo = Folder.GetFolderInfo(informacionEntrada.Id, sesion);
                        documentoRepositorio.DocumentoAsociado = folderInfo;
                    }
                    else
                    {
                        documentInfo = Document.GetDocumentInfo(informacionEntrada.Id, sesion);
                        documentoRepositorio.DocumentoAsociado = documentInfo;
                    }
                    documentoRepositorio.Repositorio = Repositorio.Laserfiche;
                    documentoRepositorio.Nombre      = documentoRepositorio.Directorio ? folderInfo.Name : documentInfo.Name;
                    documentoRepositorio.Plantilla   = documentInfo.TemplateName;
                    documentoRepositorios.Add(documentoRepositorio);
                }


                return(documentoRepositorios);
            }

            return(new List <DocumentoRepositorio>());
        }
Example #3
0
        protected void ExplorarDirectorio(EntryInfo informacionEntrada, string referencia, ref List <DocumentoRepositorio> listadoDocumentos)
        {
            if (informacionEntrada.EntryType == EntryType.Folder)
            {
                FolderInfo directorioLF = Folder.GetFolderInfo(informacionEntrada.Id, Sesion);

                var           configuracionListadoEntrada = new EntryListingSettings();
                FolderListing contenidoDirectorio         = directorioLF.OpenFolderListing(configuracionListadoEntrada);

                for (int j = 1; j <= contenidoDirectorio.RowCount; j++)
                {
                    EntryInfo informacionEntradaLF = contenidoDirectorio.GetEntryInfo(j);

                    if (informacionEntradaLF.EntryType == EntryType.Document)
                    {
                        DocumentInfo         informacionDocumentoLF = Document.GetDocumentInfo(informacionEntradaLF.Id, Sesion);
                        DocumentoRepositorio documentoRepositorio   = new DocumentoRepositorio()
                        {
                            Directorio        = false,
                            DocumentoAsociado = informacionDocumentoLF,
                            IdDocumento       = informacionDocumentoLF.Id.ToString(),
                            Nombre            = informacionDocumentoLF.Name,
                            Referencia        = referencia,
                            Plantilla         = informacionDocumentoLF.TemplateName,
                            Repositorio       = Repositorio.Laserfiche,
                            Ruta     = informacionDocumentoLF.Path,
                            TipoMime = informacionDocumentoLF.MimeType
                        };

                        listadoDocumentos.Add(documentoRepositorio);
                    }
                    else if (informacionEntradaLF.EntryType == EntryType.Folder)
                    {
                        ExplorarDirectorio(informacionEntradaLF, referencia, ref listadoDocumentos);
                    }
                }
            }
        }