Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs @ 26:71b02443450a
UI de Propuestas de VANs
author | nelo@MTEySS.neluz.int |
---|---|
date | Tue, 15 Mar 2011 08:45:00 -0300 |
parents | |
children | 29b8a8893ba3 |
line wrap: on
line source
using System; using System.Linq; using System.Web.Mvc; using Agendas.Factories; using Agendas.Web.Models; using AltNetHispano.Agendas.Domain.Exceptions; namespace Agendas.Web.Controllers { public class PropuestaController : Controller { public ActionResult Index() { var model = GetIndexModel(); return View(model); } private static PropuestaIndexModel GetIndexModel() { var agenda = AgendaFactory.GetAgenda(); return new PropuestaIndexModel { Propuestas = from e in agenda.GetEventosPropuestos() select new PropuestaDto {Id = e.Id.ToString(), Titulo = e.Titulo, Ponente = e.Ponente.Nombre} }; } [Authorize] public ActionResult New() { return View(); } [HttpPost] [Authorize] public ActionResult New(PropuestaNewModel model) { if (ModelState.IsValid) { var agenda = AgendaFactory.GetAgenda(); try { agenda.Proponer(model.Titulo, model.Ponente); return View("Index", GetIndexModel()); } catch (ValidationException ex) { ModelState.AddModelError("error", ex.ToString()); } } return View(model); } [Authorize] public ActionResult Edit(string id) { var agenda = AgendaFactory.GetAgenda(); var propuesta = agenda.GetEvento(new Guid(id)); if (propuesta != null) { var model = new PropuestaEditModel { Id = id, Titulo = propuesta.Titulo, Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty }; return View(model); } ModelState.AddModelError("error", "No se encontró el Propuesta que quiere modificar"); return View(); } [HttpPost] [Authorize] public ActionResult Edit(PropuestaEditModel model) { if (ModelState.IsValid) { var agenda = AgendaFactory.GetAgenda(); try { agenda.ModificarPropuesta(new Guid(model.Id), model.Titulo, model.Ponente); return View("Index", GetIndexModel()); } catch (ValidationException ex) { ModelState.AddModelError("error", ex.ToString()); } } return View(model); } } }