Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/PatrocinadorApiController.cs @ 296:1edd42d24711
Patrocinadores: Modificar sin persistir archivo en disco.
author | juanjose.montesdeocaarbos |
---|---|
date | Sat, 18 Feb 2012 14:08:57 -0300 |
parents | 1408ac17cb64 |
children | 9bc60d166c8a |
rev | line source |
---|---|
292
1408ac17cb64
Patrocinadores: Faltaba aplicar seguridad a la Api de Patrocinadores.
juanjose.montesdeocaarbos
parents:
285
diff
changeset
|
1 using System.Web; |
285 | 2 using System.Web.Mvc; |
3 using System.IO; | |
4 using AltNetHispano.Agendas.Domain; | |
5 using AltNetHispano.Agendas.Factories; | |
6 using AltNetHispano.Agendas.Web.Models; | |
7 | |
8 namespace AltNetHispano.Agendas.Web.Controllers | |
9 { | |
10 public class PatrocinadorApiController : Controller | |
11 { | |
12 private HttpServerUtilityBase _server; | |
13 | |
14 public HttpServerUtilityBase HttpServer | |
15 { | |
16 get | |
17 { | |
18 if (_server == null) | |
19 { | |
20 var httpServer = HttpContext.Server; | |
21 _server = httpServer; | |
22 } | |
23 | |
24 return _server; | |
25 } | |
26 } | |
27 | |
28 public PatrocinadorApiController() | |
29 { } | |
30 | |
31 public PatrocinadorApiController(HttpServerUtilityBase server) | |
32 { | |
33 _server = server; | |
34 } | |
35 | |
292
1408ac17cb64
Patrocinadores: Faltaba aplicar seguridad a la Api de Patrocinadores.
juanjose.montesdeocaarbos
parents:
285
diff
changeset
|
36 [CustomAuthorize(Roles = Roles.Administrador)] |
285 | 37 public PartialViewResult Nuevo() |
38 { | |
39 var model = new PatrocinadorNewModel(); | |
40 return PartialView(model); | |
41 } | |
42 | |
43 [HttpPost] | |
292
1408ac17cb64
Patrocinadores: Faltaba aplicar seguridad a la Api de Patrocinadores.
juanjose.montesdeocaarbos
parents:
285
diff
changeset
|
44 [CustomAuthorize(Roles = Roles.Administrador)] |
285 | 45 public JsonResult Nuevo(PatrocinadorNewModel model) |
46 { | |
47 if (ModelState.IsValid) | |
48 { | |
49 var patrocinadores = AgendaFactory.GetPatrocinadorRepository(); | |
50 if (patrocinadores.GetByNombre(model.Nombre) == null) | |
51 { | |
52 var tempLogoFile = Path.Combine(HttpServer.MapPath("~/App_Data"), | |
53 model.Nombre + | |
54 model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf("."))); | |
55 model.Logo.SaveAs(tempLogoFile); | |
56 var patrocinador = new Patrocinador(model.Nombre); | |
57 patrocinador.LoadLogo(tempLogoFile); | |
58 | |
59 patrocinadores.Save(patrocinador); | |
60 | |
61 return Json(new Resultado(true, string.Empty)); | |
62 } | |
63 return Json(new Resultado(false, "El patrocinador ya existe.")); | |
64 } | |
65 | |
66 return Json(new Resultado(false, string.Join(",", ModelState.Values))); | |
67 } | |
68 } | |
69 } |