comparison 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
comparison
equal deleted inserted replaced
277:7439d7a5f8d0 278:6f5ab71614d4
12 12
13 namespace AltNetHispano.Agendas.Web.Controllers 13 namespace AltNetHispano.Agendas.Web.Controllers
14 { 14 {
15 public class PatrocinadorController : Controller 15 public class PatrocinadorController : Controller
16 { 16 {
17 private IHttpServer _server; 17 private HttpServerUtilityBase _server;
18
19 public HttpServerUtilityBase HttpServer
20 {
21 get
22 {
23 if (_server == null)
24 {
25 var httpServer = HttpContext.Server;
26 _server = httpServer;
27 }
28
29 return _server;
30 }
31 }
18 32
19 public PatrocinadorController() 33 public PatrocinadorController()
20 { 34 {
21 _server = (IHttpServer)ControllerContext.HttpContext.Server;
22 } 35 }
23 36
24 public PatrocinadorController(IHttpServer server) 37 public PatrocinadorController(HttpServerUtilityBase server)
25 { 38 {
26 _server = server; 39 _server = server;
27 } 40 }
28 41
29 public ActionResult GetLogo(string id) 42 public ActionResult GetLogo(string id)
63 [CustomAuthorize(Roles = Roles.Administrador)] 76 [CustomAuthorize(Roles = Roles.Administrador)]
64 public ActionResult Nuevo(PatrocinadorNewModel model) 77 public ActionResult Nuevo(PatrocinadorNewModel model)
65 { 78 {
66 if (ModelState.IsValid) 79 if (ModelState.IsValid)
67 { 80 {
68 var tempLogoFile = Path.Combine(_server.MapPath("~/App_Data"), model.Nombre + model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf("."))); 81 var tempLogoFile = Path.Combine(HttpServer.MapPath("~/App_Data"),
82 model.Nombre +
83 model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf(".")));
69 model.Logo.SaveAs(tempLogoFile); 84 model.Logo.SaveAs(tempLogoFile);
70 85
71 var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); 86 var patrocinadores = AgendaFactory.GetPatrocinadorRepository();
72 87
73 var patrocinador = new Patrocinador(model.Nombre); 88 if (patrocinadores.GetByNombre(model.Nombre) == null)
74 patrocinador.LoadLogo(tempLogoFile); 89 {
75 90 var patrocinador = new Patrocinador(model.Nombre);
76 patrocinadores.Save(patrocinador); 91 patrocinador.LoadLogo(tempLogoFile);
77 92
78 return RedirectToAction("Index"); 93 patrocinadores.Save(patrocinador);
94
95 return RedirectToAction("Index");
96 }
97 this.AddError("El patrocinador ya existe.");
79 } 98 }
80 99
81 return View("DefaultEditor", model); 100 return View("DefaultEditor", model);
82 } 101 }
83 102
84 [CustomAuthorize(Roles = Roles.Administrador)] 103 [CustomAuthorize(Roles = Roles.Administrador)]
85 public ActionResult Modificar(int id) 104 public ActionResult Modificar(string id)
86 { 105 {
87 return View(); 106 var patrocinadores = AgendaFactory.GetPatrocinadorRepository();
88 }
89 107
90 [HttpPost] 108 var patrocinador = patrocinadores.GetById(id);
109 if (patrocinador == null)
110 {
111 this.AddError("No se encontrĂ³ el patrocinador que intenta modificar");
112 return RedirectToAction("Index");
113 }
114 var model = new PatrocinadorNewModel();
115 return View("DefaultEditor", model);
116 }
117
118 [HttpPost]
91 [CustomAuthorize(Roles = Roles.Administrador)] 119 [CustomAuthorize(Roles = Roles.Administrador)]
92 public ActionResult Modificar(int id, FormCollection collection) 120 public ActionResult Modificar(PatrocinadorEditModel model)
93 { 121 {
94 try 122 if (ModelState.IsValid)
95 { 123 {
96 // TODO: Add update logic here 124 var tempLogoFile = Path.Combine(HttpServer.MapPath("~/App_Data"),
97 125 model.Nombre +
98 return RedirectToAction("Index"); 126 model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf(".")));
99 } 127 model.Logo.SaveAs(tempLogoFile);
100 catch 128
101 { 129 var patrocinadores = AgendaFactory.GetPatrocinadorRepository();
102 return View(); 130
103 } 131 if (patrocinadores.GetByNombre(model.Nombre) != null)
104 } 132 {
133 var patrocinador = new Patrocinador(model.Nombre);
134 patrocinador.LoadLogo(tempLogoFile);
135
136 patrocinadores.Save(patrocinador);
137
138 return RedirectToAction("Index");
139 }
140 this.AddError("No se encuentra el patrocinador.");
141 }
142 return View("DefaultEditor", model);
143 }
105 144
106 [CustomAuthorize(Roles = Roles.Administrador)] 145 [CustomAuthorize(Roles = Roles.Administrador)]
107 public ActionResult Quitar(int id) 146 public ActionResult Quitar(int id)
108 { 147 {
109 return View(); 148 return View();