Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Web/Controllers/PatrocinadorController.cs @ 279:1e889a2e45c5
#125: ABM de patrocinadores.
author | juanjose.montesdeocaarbos |
---|---|
date | Thu, 22 Dec 2011 10:04:08 -0300 |
parents | 6f5ab71614d4 |
children | 8c742d5ccf67 |
line wrap: on
line source
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Web; using System.Web.Mvc; using AltNetHispano.Agendas.Domain; using AltNetHispano.Agendas.Factories; using AltNetHispano.Agendas.Web.Models; using AltNetHispano.Agendas.Web.Services; namespace AltNetHispano.Agendas.Web.Controllers { public class PatrocinadorController : Controller { private HttpServerUtilityBase _server; public HttpServerUtilityBase HttpServer { get { if (_server == null) { var httpServer = HttpContext.Server; _server = httpServer; } return _server; } } public PatrocinadorController() { } public PatrocinadorController(HttpServerUtilityBase server) { _server = server; } public ActionResult GetLogo(string id) { var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); var patrocinador = patrocinadores.Get(new Guid(id)); return File(patrocinador.Logo, "image/jpg"); } public ActionResult Index() { var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); var model = new PatrocinadorIndexModel { Items = from p in patrocinadores.GetAll() select new PatrocinadorDto { Id = p.Id, Nombre = p.Nombre } }; return View(model); } [CustomAuthorize(Roles = Roles.Administrador)] public ActionResult Nuevo() { var model = new PatrocinadorNewModel(); return View("DefaultEditor", model); } [HttpPost] [CustomAuthorize(Roles = Roles.Administrador)] public ActionResult Nuevo(PatrocinadorNewModel model) { if (ModelState.IsValid) { var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); if (patrocinadores.GetByNombre(model.Nombre) == null) { var tempLogoFile = Path.Combine(HttpServer.MapPath("~/App_Data"), model.Nombre + model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf("."))); model.Logo.SaveAs(tempLogoFile); var patrocinador = new Patrocinador(model.Nombre); patrocinador.LoadLogo(tempLogoFile); patrocinadores.Save(patrocinador); return RedirectToAction("Index"); } this.AddError("El patrocinador ya existe."); } return View("DefaultEditor", model); } [CustomAuthorize(Roles = Roles.Administrador)] public ActionResult Modificar(string id) { var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); var patrocinador = patrocinadores.GetById(id); if (patrocinador == null) { this.AddError("No se encontró el patrocinador que intenta modificar"); return RedirectToAction("Index"); } var model = new PatrocinadorEditModel { Id = new Guid(id).ToString(), Nombre = patrocinador.Nombre }; return View("DefaultEditor", model); } [HttpPost] [CustomAuthorize(Roles = Roles.Administrador)] public ActionResult Modificar(PatrocinadorEditModel model) { if (ModelState.IsValid) { var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); var patrocinador = patrocinadores.GetById(model.Id); if (patrocinador != null) { var tempLogoFile = Path.Combine(HttpServer.MapPath("~/App_Data"), model.Nombre + model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf("."))); model.Logo.SaveAs(tempLogoFile); patrocinador.Nombre = 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 Eliminar(string id) { if (!string.IsNullOrWhiteSpace(id)) { var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); var patrocinador = patrocinadores.GetById(id); patrocinadores.Delete(patrocinador); } return RedirectToAction("Index"); } } }