>Ejemplo 4: demo usando Windows Forms

>Seguimos con los ejemplos. Lo siguiente es un programa hecho en Visual Studio utilizando Windows Forms.

Les cito lo que puede hacer:

  • Enviar mensajes por n煤mero
  • Enviar mensajes grupales por lista de n煤meros cargados a mano o desde un archivo
  • Leer los mensajes respondidos por n煤mero
  • Leer todos los mensajes respondidos
  • Chequear mensajes respondidos por tiempo (cada 5 segundos por ejemplo)

No hay mucho m谩s que decir aparte de esto. Baj谩 el c贸digo y prob谩 la aplicaci贸n 馃檪

Les dejo las capturas.

Como siempre, tambi茅n funciona desde Linux.

>Ejemplo 3: un proyecto ejecutable

>

Esta vez les dejo un proyecto de consola utilizando el SDK. Pueden bajarlo y compilarlo utilizando el C# compiler de Visual Studio.

Este ejemplo esta basado en los otros dos anteriores pero incluye un feature todav铆a no explicado pero entendible al leer el c贸digo.

Como les dije, todo esto es multiplataforma:

Desde Windows

Desde GNU/Linux

>Ejemplo 2: smsSDK para recibir mensajes.

>

Ahora les traigo la segunda parte de la serie de tutoriales explicativos del smsSDK.
Esta vez voy a explicar c贸mo hacemos para leer las respuestas de los mensajes que enviamos.

Voy a dejar que el c贸digo hable.


public static void Main (string[] args)
{
Credencial credencial = new Credencial("demo", "d3m0");

Mensajero mensajero = new Mensajero(credencial);

/*
* Leemos la o las respuestas pasando nuestra credencial
* y el numero del cual queremos saber su respuesta
*/
ContenidoRespuesta respuesta = mensajero.LeerRespuesta(credencial, "09811111222");

/*
* Verificamos el estado de la transaccion
*/
switch(respuesta.Codigo)
{
case CodigoRespuesta.Accepted:
case CodigoRespuesta.OK:
Console.WriteLine("Pedido procesado con exito!");
break;
default:
Console.WriteLine("Hubo un error al procesar el pedido. Error: '{0}'", respuesta.Codigo.ToString());
return;
}

/*
* La propiedad "HayDatos" es true cuando hay mensajes
* respondidos para el numero que pasamos.
*/

if (!respuesta.HayDatos)
{
Console.WriteLine("No hay mensajes respondidos");
return;
}

/*
* Las respuestas son alamacenadas en "MensajeRespondido.Datos".
* Esta propiedad es un array de objetos de
* la clase "MensajeRespondido".
*
* A continuacion, iteramos sobre los datos para leer las respuestas
* e imprimirlas en pantalla.
*/
foreach(MensajeRespondido mensajeRespondido in respuesta.Datos)
{
Console.WriteLine("==========================================");
Console.WriteLine("Codigo Mensaje: {0}", mensajeRespondido.ID);
Console.WriteLine("Numero: {0}", mensajeRespondido.Numero);
Console.WriteLine("Texto Enviado: {0}", mensajeRespondido.TextoEnviado);
Console.WriteLine("Texto Recibido: {0}", mensajeRespondido.TextoRespondido);
Console.WriteLine("Fecha: {0}", mensajeRespondido.FechaRespuesta);
}

Console.WriteLine("*** LISTO ***");

}
Qu茅 pasa si queremos recibir las respuestas de todos los n煤meros a los cuales enviamos un mensaje?. F谩cil cambiamos la l铆nea:
ContenidoRespuesta respuesta = mensajero.LeerRespuesta(credencial, "0981111222");

por lo que viene:


ContenidoRespuesta respuesta = mensajero.LeerRespuesta(credencial, Mensajero.TODOS_LOS_NUMEROS);
En mis siguientes entradas voy a explicar el modelo as铆ncrono de env铆o y recepci贸n de mensajes. En estos dos ejemplos se puede ver que las invocaciones a los m茅todos son bloqueantes, cosa que puede llegar a incomodar cuando trabajamos con interfaces gr谩ficas o cuando nuestra aplicaci贸n es multiprop贸sito.