A continuacion los pasos de un pequeño validacion con REST en una aplicacion MVC
Para nuestro caso vamos a realizar la validacion de no permitir ingresar un nuevo reserva de una cancha de fulbito en el mismo dia, la misma cancha y la misma hora de inicio y fin
Primer Paso.-
Implementamos en nuestra capa Controller lo siguiente para retornar el error de en caso encontrar una reserva con los criterios inicialmente mencionados como se muestra a continuacion
[HttpPost]
public ActionResult Create(FormCollection collection)
{
try
{
string postdata = "{\"Codigo\":\"" + collection["Codigo"] + "\",\"Cliente\":\"" + collection["clientes"] + "\",\"Cancha\":\"" + collection["canchas"] + "\" ,\"Fecha\":\"" + collection["txtFechaInicioEmision"] + "\",\"Inicio\":\"" + collection["horaini"] + "\",\"Fin\":\"" + collection["horafin"] + "\",\"Monto\":\"" + collection["Monto"] + "\" }";
byte[] data = Encoding.UTF8.GetBytes(postdata);
HttpWebRequest req = (HttpWebRequest)WebRequest
.Create("http://localhost:3634/Reservas.svc/Reservas");
req.Method = "POST";
req.ContentLength = data.Length;
req.ContentType = "application/json";
var reqStream = req.GetRequestStream();
reqStream.Write(data, 0, data.Length);
HttpWebResponse res = null;
res = (HttpWebResponse)req.GetResponse();
StreamReader reader = new StreamReader(res.GetResponseStream());
string reservaJson = reader.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
Reserva1 recursoCreado = js.Deserialize<Reserva1>(reservaJson);
return RedirectToAction("Index");
}
catch (WebException e)
{
HttpWebResponse resError = (HttpWebResponse)e.Response;
StreamReader reader2 = new StreamReader(resError.GetResponseStream());
string error = reader2.ReadToEnd();
JavaScriptSerializer js = new JavaScriptSerializer();
string errorMessage = js.Deserialize<string>(error);
TempData["mensaje"] = errorMessage;
return RedirectToAction("Create");
}
return RedirectToAction("Index");
}
Segundo Paso.-
Una vez implementado vamos a nuestro servicio REST para mostrar la validacion si en caso existe la reserva con los criterios mencionados en el primer punto
public Reserva CrearReserva(Reserva reservaACrear)
{
var existe = ObtenerReserva(reservaACrear);
if (existe != null)
throw new WebFaultException<string>("Ya existe una Reserva!!!", HttpStatusCode.NotFound);
return dao.Crear(reservaACrear);
}
Como vemos hemos creado una variable (existe) que va ir a la base de datos a traves del metodo ObtenerReserva y retorna un objeto y si esto objeto es diferente de null capturaremos la exepcion y lo mostraremos en un mensaje en una nuestra vista(aspx)
<h3 style="color:Red"><%= TempData["mensaje"] %></h3>



No hay comentarios:
Publicar un comentario