comparison 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
comparison
equal deleted inserted replaced
132:45be716763c3 133:6f1041301797
24 Fecha = e.Fecha.HasValue ? e.Fecha.Value.ToShortDateString() : string.Empty, 24 Fecha = e.Fecha.HasValue ? e.Fecha.Value.ToShortDateString() : string.Empty,
25 Estado = e.Estado, 25 Estado = e.Estado,
26 PuedeAgendar = e.GetEstado().PuedePromover(Accion.Agendar), 26 PuedeAgendar = e.GetEstado().PuedePromover(Accion.Agendar),
27 PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar), 27 PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar),
28 PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar), 28 PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar),
29 PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar) 29 PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar),
30 PuedeCancelar = e.GetEstado().PuedePromover(Accion.Cancelar),
31 PuedeDescartar = e.GetEstado().PuedePromover(Accion.Descartar),
32 PuedeReAgendar = e.GetEstado().PuedePromover(Accion.ReAgendar),
33 PuedeReProponer = e.GetEstado().PuedePromover(Accion.ReProponer)
30 } 34 }
31 }; 35 };
32 return View(model); 36 return View(model);
33 } 37 }
34 38
35 [Authorize] 39 [Authorize]
36 public ActionResult Nuevo() 40 public ActionResult Nuevo()
37 { 41 {
38 return View(new EventoNewModel()); 42 var eventoModel = new EventoNewModel {Fecha = DateTime.Now};
43 return View(eventoModel);
39 } 44 }
40 45
41 [HttpPost] 46 [HttpPost]
42 [Authorize] 47 [Authorize]
43 public ActionResult Nuevo(EventoNewModel model) 48 public ActionResult Nuevo(EventoNewModel model)
169 return RedirectToAction("Index"); 174 return RedirectToAction("Index");
170 ModelState.AddModelError("error", r.ToString()); 175 ModelState.AddModelError("error", r.ToString());
171 } 176 }
172 return View(model); 177 return View(model);
173 } 178 }
174 179
180 [Authorize]
181 public ActionResult Cancelar(string id)
182 {
183 var agenda = AgendaFactory.GetAgenda();
184 agenda.Cancelar(new Guid(id));
185
186 this.AddNotification("Evento cancelado");
187 return RedirectToAction("Index");
188 }
189
190 [Authorize]
191 public ActionResult Descartar(string id)
192 {
193 var agenda = AgendaFactory.GetAgenda();
194 agenda.Descartar(new Guid(id));
195
196 this.AddNotification("Evento descartado");
197 return RedirectToAction("Index");
198 }
199
200 [Authorize]
201 public ActionResult ReAgendar(string id)
202 {
203 var agenda = AgendaFactory.GetAgenda();
204 agenda.ReAgendar(new Guid(id));
205
206 this.AddNotification("Evento re-agendado");
207 return RedirectToAction("Index");
208 }
209
210 [Authorize]
211 public ActionResult ReProponer(string id)
212 {
213 var agenda = AgendaFactory.GetAgenda();
214 agenda.ReProponer(new Guid(id));
215
216 this.AddNotification("Evento re-propuesto");
217 return RedirectToAction("Index");
218 }
175 } 219 }
176 } 220 }