Пример #1
0
        public static string crearDocumento(ISession session, string carpetaId_objetivo, Documento doc_atributos, string filePath)
        {
            try
            {
                String nombrefichero = doc_atributos.numEmpleado + ".pdf";

                IItemEnumerable<IQueryResult> results = session.Query("SELECT cmis:objectId FROM cmis:folder WHERE cmis:name='" + carpetaId_objetivo + "' AND cmis:objectTypeId ='cmis:folder'", false);

                Folder carpetaObjetivo = null;

                foreach (IQueryResult query in results)
                {
                    foreach (IPropertyData prop in query.Properties)
                    {

                        String queryName = prop.QueryName;
                        Object value = prop.FirstValue;

                        ICmisObject obj = session.GetObject((string)value);

                        if (obj is IFolder)
                            carpetaObjetivo = (Folder)obj;
                        else
                            throw new Exception("CREAR DOCUMENTO: ERROR :: No se puede subir el archivo " + nombrefichero + " .La carpeta objetivo no es de tipo 'Folder'. Por favor, revisar el id de objeto que se pasa por parámetros");
                    }
                }

                Dictionary<String, Object> properties = new Dictionary<string, object>();
                properties.Add(PropertyIds.ObjectTypeId, "D:iaflacaixa:Product");
                //properties.Add(PropertyIds.ObjectTypeId, "cmis:document");
                properties.Add(PropertyIds.Name, nombrefichero);
                properties.Add(PropertyIds.ContentStreamMimeType, "application/pdf");
                properties.Add("iaflacaixa:numEmpleado", System.Convert.ToInt32(doc_atributos.numEmpleado));
                properties.Add("iaflacaixa:DNI", doc_atributos.dni);
                properties.Add("iaflacaixa:nombre", doc_atributos.nombre_presona);
                properties.Add("iaflacaixa:apellidos", doc_atributos.apellidos);

                byte[] fichero = File.ReadAllBytes(filePath);
                Stream stream = new MemoryStream(fichero);
                ContentStream contentStream = new ContentStream();
                contentStream.Length = fichero.Length;
                contentStream.FileName = nombrefichero;
                contentStream.MimeType = "application/pdf";
                contentStream.Stream = stream;

                IDocument newdoc = carpetaObjetivo.CreateDocument(properties, contentStream,VersioningState.Major);

            }catch(Exception ex)
            {
                return ("ERROR en Crear Documento:"+ex.Message+"\n"+ex.StackTrace);
            }

            return "OK";
        }
Пример #2
0
        public ActionResult SubirDocumentacion(String nombre_presona, String apellidos, String numEmpleado, String dni, HttpPostedFileBase file)
        {
            //Primero lo subimos al directorio temporal del servidor
            string filePath = Path.Combine(Path.GetTempPath(), file.FileName);
            System.IO.File.WriteAllBytes(filePath, ReadData(file.InputStream));

            string log = string.Empty;

            Documento doc = new Documento();
            doc.nombre_presona=nombre_presona;
            doc.numEmpleado=numEmpleado;
            doc.apellidos=apellidos;
            doc.dni = dni;

            log = CMIS_Factory.crearDocumento(ses,"flacaixa", doc, filePath);

            //Una vez que lo tenemos en el directorio temportal, lo subimos a alfresco

            return Json(log);
        }
Пример #3
0
        public static List<Documento> GetAllDocumentsByFolder(string username, string password, string url_cmis_atompub,string folder)
        {
            List<Documento> resultado = new List<Documento>();
            ISession session = LoginRepository( username,  password,  url_cmis_atompub);

            /*IOperationContext folderOpCtx = session.CreateOperationContext();
            folderOpCtx.FilterString="cmis:name, cmis:path";
            folderOpCtx.IncludeAcls = false;
            folderOpCtx.IncludeAllowableActions = false;
            folderOpCtx.IncludePolicies = false;
            folderOpCtx.IncludeRelationships = DotCMIS.Enums.IncludeRelationshipsFlag.None;
            folderOpCtx.IncludePathSegments = false;
            folderOpCtx.OrderBy = null;
            folderOpCtx.CacheEnabled = true;*/

            IItemEnumerable<IQueryResult> results = session.Query("SELECT cmis:objectId FROM cmis:folder WHERE cmis:name='" + folder + "' AND cmis:objectTypeId ='cmis:folder'", false);

            foreach(IQueryResult query in results)
            {
                foreach (IPropertyData prop in query.Properties)
                {

                    String queryName = prop.QueryName;
                    Object value = prop.FirstValue;

                    ICmisObject carpeta_buscada  = session.GetObject((string)value);
                    IFolder carpetilla = null;

                    if (carpeta_buscada is IFolder)
                    {
                        carpetilla = (Folder)carpeta_buscada;
                        IItemEnumerable<ICmisObject> docs =  carpetilla.GetChildren();

                        foreach(ICmisObject obj in docs)
                        {
                            Documento doc = new Documento();

                            IProperty propdni = null;
                            IProperty propnombre = null;
                            IProperty propapellidos = null;
                            IProperty propidempleado = null;

                            try
                            {
                                propdni = obj.Properties.Where(x => x.LocalName.Equals("DNI")).First<IProperty>();
                                propnombre = obj.Properties.Where(x => x.LocalName.Equals("nombre")).First<IProperty>();
                                propapellidos = obj.Properties.Where(x => x.LocalName.Equals("apellidos")).First<IProperty>();
                                propidempleado = obj.Properties.Where(x => x.LocalName.Equals("numEmpleado")).First<IProperty>();
                            }
                            catch (Exception ex )
                            {
                                doc.dni = "";
                                doc.apellidos = "";
                                doc.nombre_presona = "";
                                doc.numEmpleado = "";
                            }

                            if (propdni != null && propdni.FirstValue != null)
                            {
                                doc.dni = propdni.Value.ToString();
                            }
                            if (propnombre != null && propnombre.FirstValue != null)
                            {
                                doc.nombre_presona = propnombre.Value.ToString();
                            }
                            if (propapellidos != null && propapellidos.FirstValue !=null)
                            {
                                doc.apellidos = propapellidos.Value.ToString();
                            }
                            if (propidempleado != null && propidempleado.FirstValue != null)
                            {
                                doc.numEmpleado = propidempleado.Value.ToString();
                            }
                            doc.iddocumento = obj.Id;
                            String [] param= {"//"};

                            doc.documento = ip_server+"/alfresco/d/a/" + obj.Id.Replace("workspace://","workspace/")+ "/" + obj.Name;
                            doc.url_visualizar = ip_server+"/alfresco/d/d/" + obj.Id.Replace("workspace://", "workspace/") + "/" + obj.Name;
                            resultado.Add(doc);
                        }
                    }

                }

            }

            return resultado;
        }