Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Web/Controllers/PatrocinadorController.cs @ 278:6f5ab71614d4
#125: ABM de patrocinadores.
author | juanjose.montesdeocaarbos |
---|---|
date | Wed, 21 Dec 2011 08:47:05 -0300 |
parents | bf993f99cee3 |
children | 1e889a2e45c5 |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Web/Controllers/PatrocinadorController.cs Tue Dec 20 08:28:33 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Controllers/PatrocinadorController.cs Wed Dec 21 08:47:05 2011 -0300 @@ -14,14 +14,27 @@ { public class PatrocinadorController : Controller { - private IHttpServer _server; + private HttpServerUtilityBase _server; + + public HttpServerUtilityBase HttpServer + { + get + { + if (_server == null) + { + var httpServer = HttpContext.Server; + _server = httpServer; + } + + return _server; + } + } public PatrocinadorController() { - _server = (IHttpServer)ControllerContext.HttpContext.Server; } - public PatrocinadorController(IHttpServer server) + public PatrocinadorController(HttpServerUtilityBase server) { _server = server; } @@ -65,43 +78,69 @@ { if (ModelState.IsValid) { - var tempLogoFile = Path.Combine(_server.MapPath("~/App_Data"), model.Nombre + model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf("."))); + var tempLogoFile = Path.Combine(HttpServer.MapPath("~/App_Data"), + model.Nombre + + model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf("."))); model.Logo.SaveAs(tempLogoFile); var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); - var patrocinador = new Patrocinador(model.Nombre); - patrocinador.LoadLogo(tempLogoFile); - - patrocinadores.Save(patrocinador); + if (patrocinadores.GetByNombre(model.Nombre) == null) + { + var patrocinador = new Patrocinador(model.Nombre); + patrocinador.LoadLogo(tempLogoFile); - return RedirectToAction("Index"); + patrocinadores.Save(patrocinador); + + return RedirectToAction("Index"); + } + this.AddError("El patrocinador ya existe."); } return View("DefaultEditor", model); } - [CustomAuthorize(Roles = Roles.Administrador)] - public ActionResult Modificar(int id) - { - return View(); - } + [CustomAuthorize(Roles = Roles.Administrador)] + public ActionResult Modificar(string id) + { + var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); - [HttpPost] + var patrocinador = patrocinadores.GetById(id); + if (patrocinador == null) + { + this.AddError("No se encontrĂ³ el patrocinador que intenta modificar"); + return RedirectToAction("Index"); + } + var model = new PatrocinadorNewModel(); + return View("DefaultEditor", model); + } + + [HttpPost] [CustomAuthorize(Roles = Roles.Administrador)] - public ActionResult Modificar(int id, FormCollection collection) - { - try - { - // TODO: Add update logic here - - return RedirectToAction("Index"); - } - catch - { - return View(); - } - } + public ActionResult Modificar(PatrocinadorEditModel model) + { + if (ModelState.IsValid) + { + var tempLogoFile = Path.Combine(HttpServer.MapPath("~/App_Data"), + model.Nombre + + model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf("."))); + model.Logo.SaveAs(tempLogoFile); + + var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); + + if (patrocinadores.GetByNombre(model.Nombre) != null) + { + var patrocinador = new Patrocinador(model.Nombre); + patrocinador.LoadLogo(tempLogoFile); + + patrocinadores.Save(patrocinador); + + return RedirectToAction("Index"); + } + this.AddError("No se encuentra el patrocinador."); + } + return View("DefaultEditor", model); + } [CustomAuthorize(Roles = Roles.Administrador)] public ActionResult Quitar(int id)