Inicio
Aporte realizado por Rommel Meza (CX-Rom) el 14-Ene-2008 rommelmeza@gmail.com
En este ejemplo realizaremos una aplicación que nos sirva para enviar SMS por medio del WebService de CXRex utilizando Visual Studio.
1.- Creamos un nuevo proyecto Windows Forms Application con nombre CXRexTest y damos aceptar.
2.- En explorador de soluciones damos botón derecho al proyecto para desplegar el menú de opciones y damos click en agregar referencia Web.
3.- En la pantalla de búsqueda de servicio especificamos la dirección del WebService de CXRex que es http://www.cxrex.com/service/CXRexService.asmx y damos en Go para que se realice la búsqueda.
4.- Una vez que localice el WebService nos desplegara una pantalla como la siguiente donde nos muestra las funciones disponibles en el WebService.
En el campo de texto donde dice Web reference name debemos especificar el namespace donde estará ubicada la referencia que en este caso pondremos www.cxrex para indicar que la referencia es Web y el servicio es CXRex, le pueden poner como gusten pero les recomiendo un nombre como el pasado ya que es bastante intuitivo y damos en agregar referencia.
5.- Después de agregar la referencia veremos en el explorador de soluciones que se agrego una carpeta con nombre Web Reference que contiene el www.cxrex que acabamos de agregar. Con esto ya tenemos la referencia en nuestro código y ya estamos listos para poder utilizarlo.
6.- Dentro de nuestro Form1 que fue creado en el momento que se creó el proyecto le agregamos un combobox, dos cajas de texto, tres etiquetas, un botón y los rotulamos de la siguiente manera.
7.- Ahora lo que sigue es agregar la referencia del WebService dentro del archivo de código donde se vaya a utilizar, en este caso dentro del Form1.cx agregamos la referencia de nuestro WebService como si fuera cualquier otra librería física del sistema con la única diferencia es que esta dentro de nuestra librería y se tendría que especificar de la siguiente manera.
using
System;using
System.Collections.Generic;using
System.ComponentModel;using
System.Data;using
System.Drawing;using
System.Text;using
System.Windows.Forms;using
CXRexTest.www.cxrex; // <-- Referencia del Web Service
namespace
CXRexTest{
publicpartialclassForm1 : Form
{
public Form1(){
InitializeComponent();
}
}
}
8.- Una vez que la referencia esta en nuestro código ya podemos acceder a los objetos que requerimos para la comunicación. Lo primero que requerimos es llenar el combobox de proveedores con la lista del WebService de CXRex creando una función que llene el combo y mandando llamar esta función desde el constructor del formulario.
//Constructor
public Form1(){
InitializeComponent();
bindProvider();
}
//Funcion para llenar el combo de provedores privatevoid bindProvider(){
CXRexService cxRexService = newCXRexService(); CXServiceProviderInfo[] providerInfo = cxRexService.getListServiceProvider();comboBox1.ValueMember =
"Name";comboBox1.DisplayMember =
"Name";comboBox1.DataSource = providerInfo;
}
En el código anterior se ve como se utiliza el objecto CXRexService que es el encargado de realizar las peticiones al servidor de CXRex, también utilizamos el objeto CXServiceProviderInfo que se utiliza para almacenar la información de algún proveedor como el nombre, país, ensamblado (Este atributo es importante reconocer el proveedor dentro del servidor de CXRex) y la cantidad de caracteres que soporta por mensaje.
9.- Lo que sigue es poder enviar el mensaje al momento de darle click en el botón de enviar que tomaría al proveedor seleccionado, el numero y el mensaje para realizar la llamada y obtener el resultado, para esto se requiere crear una función que se encarge de enviar el mensaje y mandarla llamar desde el evento click del botón enviar.
//Evento click del boton
privatevoid button1_Click(object sender, EventArgs e){
CXMessage message = newCXMessage();message.Receptor = textBox1.Text;
message.Message = textBox2.Text;
CXServiceProviderInfo provider = (CXServiceProviderInfo) comboBox1.SelectedItem; CXMessageState result = sendMessage(message, provider); //Mandamos mensaje de resultado. MessageBox.Show(Enum.GetName(typeof(CXMessageState), result));}
//Funcion para enviar el mensaje privateCXMessageState sendMessage(CXMessage _message, CXServiceProviderInfo _providerInfo)
{
CXRexService cxRexService = newCXRexService(); return cxRexService.sendMessage(_message, _providerInfo);}
En el código anterior muestra como se envía el mensaje utilizando sendMessage que toma el proveedor seleccionado del combo y el mensaje que se escribo, se envía y regresa una enumeración con el resultado de la operación, la transforma a string y envía un messagebox como resultado.
Ahora a probar seleccionen un proveedor, ingresen el número telefónico y escriban su mensaje, envíenoslo y está listo :)
Espero les sirva de algo suerte.






