>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.