Beispiel #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>();
            }));
        }
Beispiel #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>());
        }