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");
+	    }
 	}
 }