jueves, 9 de octubre de 2014

Ubicación de archivo de Localización para los RadGrids de la aplicación en Sharepoint

Para que las tablas o RadGrids de la aplicación funcionen correctamente en idioma español es necesario crear un archivos de recursos y asociarlo a cada uno de los Grid, este archivo de recursos es de extensión resx y debe estar ubicado en la carpeta “App_GlobalResources” de la carpeta de la aplicación en el IIS, su nombre debe especificarse de la siguiente manera RadGrid.Main.LENGUAJE.resx, en este caso y en idioma español colombia sería RadGrid.Main.es-CO.resx.

En una solución de Sharepoint no se puede ubicar la carpeta App_GlobalResouces en la solución en visual studio sino que se debe ubicar en el Sitio de Sharepoint creado en el IIS, como se muestra en la imagen a continuación:


En visual estudio se debe agragar el siguiente parametro al RadGrid

<telerik:RadGrid ID="rgReporte" FilterItemStyle-HorizontalAlign="Center" AlternatingItemStyle-HorizontalAlign="Center" ItemStyle-HorizontalAlign="Center" HeaderStyle-HorizontalAlign="Center" EnableEmbeddedSkins="False" runat="server" PageSize="12" Skin="metroprueba" AllowPaging="True" Culture="es-CO"

martes, 22 de julio de 2014

Validar extensiones de archivo en un fileUploader con Jquery

En unos de mis desarrollos me surgió la necesidad de hacer validación de extensiones a los archivos que se subían a una aplicación a través de un fileUploader, la restricción era únicamente permitir subir archivos con extensión .jpeg, .jpg, .png, archivos de imagen, pero esta validación debía ser del lado del cliente, a continuación les comparto el código que utilice para lograr esto:


//extensiones a validar
var _validFileExtensions = [".jpg", ".jpeg", ".bmp", ".gif", ".png"];

function Validate() {
            var sFileName = $("#nombreControl").val();
            if (sFileName.length > 0) {
                var blnValid = false;
                for (var j = 0; j < _validFileExtensions.length; j++) {
                    var sCurExtension = _validFileExtensions[j];
                    if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length).toLowerCase() == sCurExtension.toLowerCase()) {
                        blnValid = true;
                        break;
                    }
                }

                if (!blnValid) {
                    alert("El archivo " + sFileName + " no es valido, las extensiones permitidas son: " + _validFileExtensions.join(", "));
                    return false;
                }
            }
         
            
            return true;
        }

miércoles, 9 de julio de 2014

Como borrar todos los elementos de una lista de sharepoint a través de codigo

Muchas veces se requiere eliminar todos los elementos de una lista de sharepoint y a través de la interfaz de administración de sitio donde se encuentra la lista, en opciones, no hay una que me permita la eliminación de todos los elementos de la lista, solo permite eliminar elemento por elemento por lo que se convierte en algo muy tedioso.

Si se esta utilizando algún proyecto de visual studio para sharepoint se puede utilizar las siguientes lineas de código para la eliminación de todos los elementos:


         SPSite site = SPContext.Current.Site;
            SPWeb web = site.OpenWeb();
            web.AllowUnsafeUpdates = true;
            SPList list = web.Lists["nombre de la lista"];


            SPListItemCollection items = list.Items;
            for (int i = items.Count - 1; i >= 0; i--)
            {
                items[i].Delete();
            }
            web.Update();

martes, 17 de junio de 2014

Acceder a secure store service desde código en sharepoint 2013

Para acceder al secure store service desde código se debe hacer lo siguiente:

Añadir las siguientes referencias al proyecto de sharepoint desde donde se quiere acceder al sercure store service

- Microsoft.BusinessData
- Microsoft.Office.SecureStoreService

La ubicación de los dll se encuentran en el GAC en la carpeta

C:\Windows\Microsoft.NET\assembly\GAC_MSIL\

En archivo.cs que accedera añadir los siguientes using

using Microsoft.SharePoint.Administration;
using Microsoft.Office.BusinessData.Infrastructure.SecureStore;
using Microsoft.Office.SecureStoreService.Server;
using System.Security;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Microsoft.BusinessData;
using System.ComponentModel;

Los dos siguientes métodos son lo necesarios para acceder desde código a las credenciales creadas en el secure store service, el método GetValues, toma como parametro serviceContext obtenido mediante SPServiceContext.Current, y como segundo parámetro el target application ID donde se encuentran las credenciales.

private Dictionary<string,string> GetValues(SPServiceContext serviceContext,string applicationID) {

SecureStoreProvider secureStoreProvider = new SecureStoreProvider { Context = serviceContext };
           var values = new Dictionary<string,string>();
           using( var credentials = secureStoreProvider.GetCredentials(applicationID)) {
                   var fields = secureStoreProvider.GetTargetApplicationFields(applicationID);
                   for(var i=0; i<fields.Count; i++) {
                       var field = fields[i];
                       var credential = credentials[i];
                       var decryptedCredential = ToClrString(credential.Credential);
                       values.Add(field.Name, decryptedCredential);
                   }
           }
           return values;
       }

       public string ToClrString( SecureString secureString)
       {
           var ptr = Marshal.SecureStringToBSTR(secureString);
           try{
               return Marshal.PtrToStringBSTR(ptr);
           }
           finally{
               Marshal.FreeBSTR(ptr);
           }
       }

mostrar error detallado en sharepoint

Sharepoint por defecto muestra un mensaje de error que muchas veces no es suficiente para saber exactamente la causa del error, las siguientes instrucciones indican cómo activar la descripción detallada acerca del error que esta pasando.

Modificar los webconfig en las carpetas

  • C:\inetpub\wwwroot\wss\VirtualDirectories\<web app port>\web.config
  • C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\TEMPLATE\LAYOUTS\web.config

La primera ruta puede ser accedida a través del IIS, dando click derecho sobre la aplicación a la cual queremos realizar la configuración y seleccionado la opción explorar, esta acción nos llevara a la carpeta donde se encuentra el web.config.
En los tags SafeMode y customErrors hacer los siguientes cambio para ambos archivos:
antes:
<SafeMode MaxControls=“200“ CallStack=“false“ DirectFileDependencies=“10“ TotalFileDependencies=“50“ AllowPageLevelTrace=“false“>
despues:
<SafeMode MaxControls=“200“ CallStack=“true“ DirectFileDependencies=“10“ TotalFileDependencies=“50“ AllowPageLevelTrace=“true“>
antes:
<customErrors mode=“On“ />
después:
<customErrors mode=“Off“ />

jueves, 6 de marzo de 2014

Respuesta estandar (plantillas) en gmail

Hola a todos,

En el siguiente vídeo se explica como activar y utilizar las respuestas estándar de Gmail, las respuestas estándar son como plantillas que se guardan y conservan y el mismo contenido y estructura para ser utilizas posteriormente. Espero les sea de mucha utilidad.

Click para ver video




miércoles, 26 de diciembre de 2012

Verificar correo electrónico en listas negras

Hoy quiero publicar esta interesante herramienta para el análisis relacionado con el trafico en Internet, me permite verificar dominios, velocidad de Internet y verificar si un correo electrónico esta reportado en alguna base de datos de listas de negras de Spam, me fui util para verificar en que listas esta mi IP reportada, tiene una version de prueba de 180 dias.

El enlace es el siguiente:

http://www.dnsstuff.com/