Exemple #1
0
        /// <summary>
        /// Método para eliminar los archivos del repositorio SharePoint.
        /// </summary>
        /// <param name="lstArchivosSHP">lista que contiene los ID de los archivos</param>
        /// <param name="listName">nombre del directorio dentro del cual se buscan los archivos</param>
        /// <param name="hayError">parámetro para capturar los errores del procedimiento</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <Object> EliminaArchivoSharePoint(List <int> lstArchivosSHP, string listName, ref string hayError)
        {
            ProcessResult <Object> resultado = new ProcessResult <Object>();
            string siteUrl = string.Empty;

            siteUrl = RetornaSiteUrlSharePoint();
            try
            {
                Dictionary <string, string> termsArray = new Dictionary <string, string>();
                using (ClientContext clientContext = new ClientContext(siteUrl))
                {
                    #region Logueo
                    clientContext.Credentials = RetornaCredencialesServer();
                    #endregion
                    foreach (int idFile in lstArchivosSHP)
                    {
                        CamlQuery query = new CamlQuery();
                        query.ViewXml = string.Format(@"
                        <View Scope='Recursive'>
                            <Query>
                                <Where>
                                    <Eq><FieldRef Name='ID'/><Value Type='Number'>" + idFile + @"</Value></Eq>
                                </Where>
                                <RowLimit>1</RowLimit>
                            </Query>
                        </View>", idFile);

                        List list = clientContext.Web.Lists.GetByTitle(listName);
                        ListItemCollection listItems = list.GetItems(query);
                        clientContext.Load(listItems);
                        clientContext.ExecuteQuery();
                        if (listItems.Count > 0)
                        {
                            ListItem item = listItems[0];
                            item.DeleteObject();
                        }
                    }
                    clientContext.ExecuteQuery();
                }
                resultado.Result = 1;
            }
            catch (Exception ex)
            {
                hayError = ex.Message;
                LogBL.grabarLogError(ex);//GRC16062015
                resultado.Result    = -1;
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <SharePointService>(ex);
            }
            return(resultado);
        }
Exemple #2
0
        /// <summary>
        /// Retorna el arreglo de bytes del documento SharePoint
        /// </summary>
        /// <param name="hayError">Cadena para ver si hay errores al retornar el documento.</param>
        /// <param name="idItem">Código del Archivo en el SharePoint</param>
        /// <param name="siteUrl">URL del Site SharePoint</param>
        /// <param name="listName">Lista de biblioteca.</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <Object> DescargaArchivoPorId(ref string hayError, long idItem, string listName)
        {
            ProcessResult <Object> resultado = new ProcessResult <Object>();

            hayError = string.Empty;
            MemoryStream memorySt = null;
            string       siteUrl  = string.Empty;

            siteUrl = RetornaSiteUrlSharePoint();
            try
            {
                using (ClientContext context = new ClientContext(siteUrl))
                {
                    context.Credentials = RetornaCredencialesServer();
                    CamlQuery query = new CamlQuery();
                    query.ViewXml = string.Format(@"
                    <View Scope='Recursive'>
                        <Query>
                            <Where>
                                <Eq><FieldRef Name='ID'/><Value Type='Number'>" + idItem + @"</Value></Eq>
                            </Where>
                            <RowLimit>1</RowLimit>
                        </Query>                                                                    
                    </View>", idItem);

                    List list = context.Web.Lists.GetByTitle(listName);
                    ListItemCollection listItems = list.GetItems(query);
                    context.Load(listItems);
                    context.ExecuteQuery();

                    if (listItems.Count == 1)
                    {
                        ListItem item = listItems.First();
                        Microsoft.SharePoint.Client.File file = item.File;
                        ClientResult <Stream>            data = file.OpenBinaryStream();
                        ////Load the Stream data for the file
                        context.Load(file);
                        context.ExecuteQuery();
                        if (data != null)
                        {
                            using (memorySt = new MemoryStream())
                            {
                                data.Value.CopyTo(memorySt);
                            }
                        }

                        resultado.Result = memorySt.ToArray();
                    }
                    else
                    {
                        memorySt = null;
                    }
                }
            }
            catch (Exception ex)
            {
                hayError = ex.Message;
                LogBL.grabarLogError(ex);//GRC16062015
                resultado.Result    = null;
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <SharePointService>(ex);
            }
            return(resultado);
        }
Exemple #3
0
        /// <summary>
        /// Registra un nuevo archivo en el servidor de SharePoint
        /// </summary>
        /// <param name="hayError">variable que contiene el mensaje de error al registrar</param>
        /// <param name="listName">biblioteca de donde se encontrará el archivo</param>
        /// <param name="folderName">nombre de carpeta del archivo</param>
        /// <param name="fileName">nombre del archivo</param>
        /// <param name="myFile">stream del archivo</param>
        /// <param name="prmSiteURL">URL del servidor SharePoint</param>
        /// <param name="prmCredenciales">Credenciales de acceso al servidor SharePoint</param>
        /// <returns>Indicador con el resultado de la operación</returns>
        public ProcessResult <Object> RegistraArchivoSharePoint(ref string hayError, string listName, string folderName, string fileName, MemoryStream myFile, string prmSiteURL = null, NetworkCredential prmCredenciales = null)
        {
            ProcessResult <Object> resultado = new ProcessResult <Object>();
            string siteUrl = string.Empty;

            if (string.IsNullOrEmpty(prmSiteURL))
            {
                siteUrl = RetornaSiteUrlSharePoint();
            }
            else
            {
                siteUrl = prmSiteURL;
            }

            try
            {
                using (ClientContext clientContext = new ClientContext(siteUrl))
                {
                    Web webSite = clientContext.Web;
                    #region Logeo
                    if (prmCredenciales == null)
                    {
                        clientContext.Credentials = RetornaCredencialesServer();
                    }
                    else
                    {
                        clientContext.Credentials = prmCredenciales;
                    }
                    #endregion

                    #region CreacionListaPrincipal
                    /*-------------------Verificamos si la Lista ya existe.GRC.---------------------*/
                    List               existeLista   = null;
                    ListCollection     lstCollection = clientContext.Web.Lists;
                    IEnumerable <List> misLitas      = clientContext.LoadQuery(lstCollection.Include(list => list.Title));
                    clientContext.ExecuteQuery();

                    existeLista = misLitas.FirstOrDefault(lista => lista.Title.ToLower() == listName.ToLower());
                    if (existeLista == null)
                    {
                        ListCreationInformation creationInfo = new ListCreationInformation();
                        creationInfo.Title        = listName;
                        creationInfo.TemplateType = (int)ListTemplateType.DocumentLibrary;
                        List listGeneral = webSite.Lists.Add(creationInfo);
                        listGeneral.Description = DatosConstantes.ArchivosContrato.DescripcionBibliotecaSHP;
                        listGeneral.Update();
                        clientContext.ExecuteQuery();
                    }
                    #endregion

                    #region crearDirectorio
                    var folder = CreateCarpeta(clientContext.Web, listName, folderName);
                    #endregion

                    #region listaDirectorio
                    List listaSitio = clientContext.Web.Lists.GetByTitle(listName);

                    clientContext.Load(listaSitio);
                    clientContext.Load(listaSitio.RootFolder);
                    clientContext.ExecuteQuery();
                    var serverRelativeURLFile = listaSitio.RootFolder.ServerRelativeUrl.ToString() + (string.IsNullOrEmpty(folderName) ? "" : "/" + folderName)
                                                + "/" + fileName;
                    #endregion

                    #region GenerarBytesSHP
                    Stream stmMyFile;
                    byte[] newFile = myFile.ToArray();
                    stmMyFile = new MemoryStream(newFile);
                    #endregion

                    #region CopiarStreamArchivo
                    Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, serverRelativeURLFile, stmMyFile, true);
                    #endregion

                    #region LeerNuevoArchivo
                    clientContext.Load(webSite);
                    clientContext.ExecuteQuery();
                    // cargamos el archivo guardado
                    Microsoft.SharePoint.Client.File getNewFile = webSite.GetFileByServerRelativeUrl(serverRelativeURLFile);
                    clientContext.Load(getNewFile);
                    #endregion

                    #region CargarDatos
                    ListItem myItem = getNewFile.ListItemAllFields;

                    clientContext.Load(myItem);
                    clientContext.Load(myItem.File);
                    clientContext.ExecuteQuery();
                    resultado.Result = myItem.Id;
                    #endregion
                }
            }
            catch (Exception ex)
            {
                hayError = ex.Message;
                LogBL.grabarLogError(ex);
                resultado.Result    = -1;
                resultado.IsSuccess = false;
                resultado.Exception = new ApplicationLayerException <SharePointService>(ex);
            }
            return(resultado);
        }