24 de abril de 2017

:: Tratar JSON desde C#

Es habitual tener que realizar una petición a una API para consumir un servicio, y que este nos devuelva el resultado en formato JSON del que extraeremos la información necesaria.

Aunque es una tarea sencilla, y únicamente a modo de recordatorio, para llevar a cabo esta tarea desde una aplicación C#, el código sería algo similar a este:


String url = "https://api.sunrise-sunset.org/json" + "?lat=" + txtLatitud.Text + "&lng=" + txtLongitud.Text + "&date=" + fecha;
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();

Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();

dynamic obj = JsonConvert.DeserializeObject(responseFromServer);

if (obj != null)

this.txtRespuesta.Text = responseFromServer.ToString();

this.txtSunrise.Text = obj.results.sunrise;
this.txtSunset.Text = obj.results.sunset;
}

reader.Close();
response.Close();


17 de abril de 2017

:: Alfresco. Importar usuarios desde un CSV

A la hora de crear varios usuarios en Alfresco, podemos hacerlo por medio de un fichero CSV, el cual debe seguir un formato específico.

Esta tarea es útil -por ejemplo- cuando tenemos que crear una relación extensa de usuarios, estableciendo cuotas de disco, o simplemente creando credenciales de acceso al gestor documental.

  • La información que puede contener es la siguiente:
  • User Name,First Name,Last Name,E-mail Address,,Password,Company,Job Title,Location,Telephone,Mobile, Skype,IM,Google User Name,Address,Address Line 2,Address Line 3,Post Code,Telephone,Fax,Email
  • Debe estar en UTF-8, ya que de lo contrario tendremos problemas con caracteres extraños
  • El separador debe ser el caracter "," (coma)

Si se ha especificado una dirección de correo electrónico para cada cuenta de usuario a crear, estos recibirán un mail con los datos de acceso (siempre y cuando las notificaciones se encuentren habilitadas).

Un ejemplo de fichero CSV para crear varios usuarios en Alfresco podría ser el siguiente:
import_usr01,Usuario 1, Apellidos 1,usr1@netic360.es,,import_usr01,netic360,Desarrollador web,Madrid,123456789
import_usr02,Usuario 2, Apellidos 2,usr2@netic360.es,,import_usr02,netic360,Desarrollador Liferay,Madrid,123456789
import_usr03,Usuario 3 , Apelllidos 3,usr3@netic360.es,,import_usr03,netic360,Desarrollador Liferay,Madrid,123456789
import_usr04,Usuario 4, Apellidos 4,usr4@netic360.es,,import_usr04,netic360,Desarrollador .NET,Madrid,123456789

Dentro de  nuestro Alfresco seleccionaremos "Administración" > "Usuarios"


Tras la pulsación del botón "Subir fichero CSV de usuarios", este fichero se subirá a nuestro Alfresco y será procesado, obteniendo los resultados de la operación.






11 de abril de 2017

:: CMIS. Conexión con Alfresco

Describiremos a continuación una prueba de concepto de conexión desde una aplicación desarrollada en C# con Alfresco, a través de CMIS.



¿Qué es CMIS?


De acuerdo a la definición que aparece en la Wikipedia, Content Management Interoperability Services (CMIS) o Servicios de Interoperabilidad de Gestión de Contenidos es un estándar abierto que permite a diferentes sistemas de gestión de contenidos interoperar a través de Internet. En concreto, CMIS define una capa de abstracción para el control de diversos sistemas de gestión de documentos y repositorios, que utilicen protocolos web.

¿Cómo nos conectamos con Alfresco a través de CMIS?

Para llevar a cabo la conexión, tendremos un Alfresco (por ejemplo instalado en local en el puerto 8282) y necesitaremos una función a la que le pasaremos 3 parámetros:

  • Ruta: Indica la ruta CMIS (http://localhost:8282/alfresco/api/-default-/public/cmis/versions/1.0/atom)
  • Usuario: usuario definido en Alfresco
  • Clave: clave de acceso a Alfresco


Estos dos últimos parámetros constituyen las credenciales de acceso a nuestro Alfresco.



Tras pulsar sobre el botón de login, se llamará a la siguiente función, que realizará la conexión a Alfresco a través de CMIS

/* * Conexión con Alfresco */
private static ISession ConexionAlfresco(String ruta, String usuario, String clave)
{
if (System.Diagnostics.Debugger.IsAttached)
  Console.WriteLine("Estableciendo conexión con Alfresco...");
try {
 Dictionary parameters = new Dictionary(); 
 parameters[DotCMIS.SessionParameter.BindingType] = BindingType.AtomPub; //Parámetros de  conexión 
 parameters[DotCMIS.SessionParameter.AtomPubUrl] = ruta;  parameters[DotCMIS.SessionParameter.User] = usuario;  parameters[DotCMIS.SessionParameter.Password] = clave; 
 SessionFactory factory = SessionFactory.NewInstance(); 
 IList repos = factory.GetRepositories(parameters); 
 ISession session = repos.ElementAt(0).CreateSession(); 
  return session; 
 } catch (Exception ex) { 
 Console.WriteLine("ERROR :: No se ha podido establecer la conexión con Alfresco"); 
 return null; 
 } 
}


Puesto que hemos llevado a cabo la conexión con Alfresco utilizando el estándar CMIS desde una aplicación C#, utilizaremos "DotCMIS".


:: Liferay. Script para ir al inicio de la página

En diversos temas de apariencia es necesario contar un enlace que permita al usuario realizar un scroll al inicio de la página. Este comport...