Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 117:7ef7e4bb71f6
manejo de mensajes al usuario
author | Nelo@Kenia.neluz.int |
---|---|
date | Sun, 19 Jun 2011 13:35:34 -0300 |
parents | 53bcd338542b |
children | b74734a1a755 |
line wrap: on
line source
using System; using System.Linq; using System.Web.Mvc; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Factories; using AltNetHispano.Agendas.Web.Models; namespace AltNetHispano.Agendas.Web.Controllers { public class EventoController : Controller { public ActionResult Index() { var agenda = AgendaFactory.GetAgenda(); var model = new EventoIndexModel { ProximosEventos = from e in agenda.GetEventosAgendados() orderby e.Fecha select new EventoDto { Id = e.Id.ToString(), Titulo = e.Titulo, Fecha = e.Fecha.Value, PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar), PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar), PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar) } }; return View(model); } [Authorize] public ActionResult New() { return View(new EventoNewModel()); } [HttpPost] [Authorize] public ActionResult New(EventoNewModel model) { if (ModelState.IsValid) { var agenda = AgendaFactory.GetAgenda(); var r = agenda.Agendar(model.Titulo, model.Ponente, model.Fecha, model.UrlInvitacion, (TipoEvento)model.Tipo); if (r.Succeful) { this.AddNotification("Datos guardados"); return RedirectToAction("Index"); } ModelState.AddModelError("error", r.ToString()); } return View(model); } [Authorize] public ActionResult Edit(string id) { var agenda = AgendaFactory.GetAgenda(); var evento = agenda.GetEvento(new Guid(id)); var model = new EventoEditModel { Id = id, Titulo = evento.Titulo, Ponente = evento.Ponente != null ? evento.Ponente.Nombre : string.Empty, Fecha = evento.Fecha, UrlInvitacion = evento.UrlInvitacion }; return View(model); } [Authorize] public ActionResult Confirm(string id) { var agenda = AgendaFactory.GetAgenda(); agenda.Confirmar(new Guid(id)); this.AddNotification("Evento confirmado"); return RedirectToAction("Index"); } [Authorize] public ActionResult Publish(string id) { var agenda = AgendaFactory.GetAgenda(); agenda.Publicar(new Guid(id), 0, string.Empty); this.AddNotification("Evento publicado"); return RedirectToAction("Index"); } [HttpPost] [Authorize] public ActionResult Edit(EventoEditModel model) { if (ModelState.IsValid) { var agenda = AgendaFactory.GetAgenda(); var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion); if (r.Succeful) { this.AddNotification("datos guardados"); return RedirectToAction("Index"); } ModelState.AddModelError("error", r.ToString()); } return View(model); } } }