Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Web/Controllers/PersonaController.cs @ 144:a2b14da4902f
Alta y modificación de ponentes (personas)
author | Nelo@Guinea.neluz.int |
---|---|
date | Mon, 01 Aug 2011 10:25:23 -0300 |
parents | |
children | 23aaf98b8377 |
line wrap: on
line source
using System; using System.Linq; using System.Web.Mvc; using AltNetHispano.Agendas.Factories; using AltNetHispano.Agendas.Web.Models; namespace AltNetHispano.Agendas.Web.Controllers { public class PersonaController : Controller { public ActionResult Index() { var personas = AgendaFactory.GetPersonaService(); var model = new PersonaIndexModel {Items = from p in personas.GetAll() select new PersonaDto{Id=p.Id, Nombre = p.Nombre}}; return View(model); } public ActionResult Nueva() { return View(); } [HttpPost] public ActionResult Nueva(PersonaNewModel model) { if (ModelState.IsValid) { var personas = AgendaFactory.GetPersonaService(); var r = personas.Add(model.Nombre, model.Twitter, model.EMail); if (r.Succeful) { this.AddNotification("Los datos fueron guardados"); return RedirectToAction("Index"); } else this.AddError(r.Message); } return View(model); } public ActionResult Modificar(string id) { var personas = AgendaFactory.GetPersonaService(); var persona = personas.GetById(new Guid(id)); if (persona==null) { this.AddError("No se encontró la persona que intenta modificar"); return RedirectToAction("Index"); } var model = new PersonaEditModel {Id = persona.Id.ToString(), Nombre = persona.Nombre, Twitter = persona.Twitter, EMail = persona.Mail}; return View(model); } [HttpPost] public ActionResult Modificar(PersonaEditModel model) { if (ModelState.IsValid) { var personas = AgendaFactory.GetPersonaService(); var r = personas.Update(new Guid(model.Id), model.Nombre, model.Twitter, model.EMail); if (r.Succeful) { this.AddNotification("Los datos fueron guardados"); return RedirectToAction("Index"); } else this.AddError(r.Message); } return View(model); } } }