PARTE FINAL: Consumiendo la Web API en WPF
Hasta este punto ya tenemos casi todo hecho y lo único que falta es poder consumir el servicio.
Antes de empezar tenermos que hacer referencia con nuestra clase “Usuario” creado en la capa “Est_Datos” (en nuestro proyecto).
Antes de empezar tenemos que saber que se necesitan agregar otras librerias que permitiran convertir los datos en xml a clases y así se nos hará mas sencillo manejar los datos que se obtengan:
using Est_Datos;
using Newtonsoft.Json;
using System.Net.Http;
Para poder hacer el llamado a un servicio se tiene que hacer desde un método asíncrono como el siguiente.
public async void Login(){
try{
String usuario=txt_Usuario.Text;
String password = txt_Passw.Password;
var http_c = new HttpClient();
var json = await http_c.GetStringAsync("http://pruebawpf.azurewebsites.net/api/public/VerificaUsuario?Usuario="+ usuario + "&Passw=" + password);
Usuario u = JsonConvert.DeserializeObject<Usuario>(json);
MessageBox.Show(u.usuarioID.ToString());
}catch(Exception e){
MessageBox.Show("Usuario o password incorrectos.");
}
}
Como podemos ver tenemos que crear un HttpClient para poder acceder al método GetStringAsync que es el metodo que nos ayudará a obtener el contenido que tenga la URL (método de la Web API). También podemos utilizar el PostStringAsync en caso nuestra intención sea enviar información a la base de datos por medio del servicio desplegado, pero la forma de enviar información por Post tiene un ligero cambio.
Hasta esa parte del codigo ya hemos enviado la información, ahora tenemos que capturar los datos que nos enviará como respuesta. Para ello declaramos una variable del mismo tipo que la respuesta que recibiremos, en nuestro caso es la clase Usuario y por medio de la funcion JsonConvert guardaremos la información que nos vendrá entre etiquetas (XML). Ahora lo unico que haremos es verificar si la información que nos llega es correcta mostrando una alerta con el ID del usuario. Ustedes pueden enviar a otra pantalla.
Ahora tenemos que invocar desde el método donde se captura el clic en el boton “Ingresar” de nuestra aplicación.
private void btn_Ingresar_Click(object sender,RoutedEventArgs e)
{
Login();
}
Llegados hasta este punto nos salta una duda. ¿Cómo sé si el usuario existe o no? Porque estamos acostumbrados a mostrar un mensaje de error en caso el usuario sea incorrecto. Bueno, lo más sencillo sería envolver el código en un try catch (como lo hice yo) y mostrar un mensaje cuando el catch salte a la vista. Porque si ocurre algun error será porque el codigo XML no devuelve ningún dato, es más es mi recomendación utilizar el try catch porque en caso que ocurra algun problema la aplicación simplemente se cerrará. Y ahora a ejecutar el proyecto WPF para ver como marchan las cosas.
Cuando el usuario es correcto.
Cuando el usuario es incorrecto.
Con esto digo fin a la serie de entradas. Nos veremos después con más contenido. ¡Grazie!
Quizás lo necesiten!
La web API quedará abierta y quizás después la utilicemos en otras publicaciones.

