Mercurial > altnet-hispano
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(); |