comparison Agendas/trunk/src/Agendas.Web/Controllers/PatrocinadorController.cs @ 275:bf993f99cee3

Ticket #123: Patrocinadores de las vans.
author juanjose.montesdeocaarbos
date Wed, 14 Dec 2011 08:15:44 -0300
parents
children 6f5ab71614d4
comparison
equal deleted inserted replaced
274:72a96459f910 275:bf993f99cee3
1 using System;
2 using System.Collections.Generic;
3 using System.IO;
4 using System.Linq;
5 using System.Web;
6 using System.Web.Mvc;
7 using AltNetHispano.Agendas.Domain;
8 using AltNetHispano.Agendas.Factories;
9 using AltNetHispano.Agendas.Web.Models;
10 using AltNetHispano.Agendas.Web.Services;
11
12
13 namespace AltNetHispano.Agendas.Web.Controllers
14 {
15 public class PatrocinadorController : Controller
16 {
17 private IHttpServer _server;
18
19 public PatrocinadorController()
20 {
21 _server = (IHttpServer)ControllerContext.HttpContext.Server;
22 }
23
24 public PatrocinadorController(IHttpServer server)
25 {
26 _server = server;
27 }
28
29 public ActionResult GetLogo(string id)
30 {
31 var patrocinadores = AgendaFactory.GetPatrocinadorRepository();
32
33 var patrocinador = patrocinadores.Get(new Guid(id));
34
35 return File(patrocinador.Logo, "image/jpg");
36 }
37
38 public ActionResult Index()
39 {
40 var patrocinadores = AgendaFactory.GetPatrocinadorRepository();
41
42 var model = new PatrocinadorIndexModel
43 {
44 Items = from p in patrocinadores.GetAll()
45 select new PatrocinadorDto
46 {
47 Id = p.Id,
48 Nombre = p.Nombre
49 }
50 };
51
52 return View(model);
53 }
54
55 [CustomAuthorize(Roles = Roles.Administrador)]
56 public ActionResult Nuevo()
57 {
58 var model = new PatrocinadorNewModel();
59 return View("DefaultEditor", model);
60 }
61
62 [HttpPost]
63 [CustomAuthorize(Roles = Roles.Administrador)]
64 public ActionResult Nuevo(PatrocinadorNewModel model)
65 {
66 if (ModelState.IsValid)
67 {
68 var tempLogoFile = Path.Combine(_server.MapPath("~/App_Data"), model.Nombre + model.Logo.FileName.Substring(model.Logo.FileName.LastIndexOf(".")));
69 model.Logo.SaveAs(tempLogoFile);
70
71 var patrocinadores = AgendaFactory.GetPatrocinadorRepository();
72
73 var patrocinador = new Patrocinador(model.Nombre);
74 patrocinador.LoadLogo(tempLogoFile);
75
76 patrocinadores.Save(patrocinador);
77
78 return RedirectToAction("Index");
79 }
80
81 return View("DefaultEditor", model);
82 }
83
84 [CustomAuthorize(Roles = Roles.Administrador)]
85 public ActionResult Modificar(int id)
86 {
87 return View();
88 }
89
90 [HttpPost]
91 [CustomAuthorize(Roles = Roles.Administrador)]
92 public ActionResult Modificar(int id, FormCollection collection)
93 {
94 try
95 {
96 // TODO: Add update logic here
97
98 return RedirectToAction("Index");
99 }
100 catch
101 {
102 return View();
103 }
104 }
105
106 [CustomAuthorize(Roles = Roles.Administrador)]
107 public ActionResult Quitar(int id)
108 {
109 return View();
110 }
111
112 }
113 }