Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 133:6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
Falta solucionar problema con flujo, ver más información en el ticket de assembla.
http://www.assembla.com/spaces/altnet-hispano/tickets/146-implementar-estado-descartar-y-cancelar-de-eventos
author | alabra |
---|---|
date | Sun, 10 Jul 2011 23:59:19 -0400 |
parents | b74734a1a755 |
children | 3639803112c6 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs Sun Jul 10 23:55:56 2011 -0400 +++ b/Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs Sun Jul 10 23:59:19 2011 -0400 @@ -26,7 +26,11 @@ PuedeAgendar = e.GetEstado().PuedePromover(Accion.Agendar), PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar), PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar), - PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar) + PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar), + PuedeCancelar = e.GetEstado().PuedePromover(Accion.Cancelar), + PuedeDescartar = e.GetEstado().PuedePromover(Accion.Descartar), + PuedeReAgendar = e.GetEstado().PuedePromover(Accion.ReAgendar), + PuedeReProponer = e.GetEstado().PuedePromover(Accion.ReProponer) } }; return View(model); @@ -35,7 +39,8 @@ [Authorize] public ActionResult Nuevo() { - return View(new EventoNewModel()); + var eventoModel = new EventoNewModel {Fecha = DateTime.Now}; + return View(eventoModel); } [HttpPost] @@ -171,6 +176,45 @@ } return View(model); } + + [Authorize] + public ActionResult Cancelar(string id) + { + var agenda = AgendaFactory.GetAgenda(); + agenda.Cancelar(new Guid(id)); + this.AddNotification("Evento cancelado"); + return RedirectToAction("Index"); + } + + [Authorize] + public ActionResult Descartar(string id) + { + var agenda = AgendaFactory.GetAgenda(); + agenda.Descartar(new Guid(id)); + + this.AddNotification("Evento descartado"); + return RedirectToAction("Index"); + } + + [Authorize] + public ActionResult ReAgendar(string id) + { + var agenda = AgendaFactory.GetAgenda(); + agenda.ReAgendar(new Guid(id)); + + this.AddNotification("Evento re-agendado"); + return RedirectToAction("Index"); + } + + [Authorize] + public ActionResult ReProponer(string id) + { + var agenda = AgendaFactory.GetAgenda(); + agenda.ReProponer(new Guid(id)); + + this.AddNotification("Evento re-propuesto"); + return RedirectToAction("Index"); + } } }