Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs @ 26:71b02443450a
UI de Propuestas de VANs
author | nelo@MTEySS.neluz.int |
---|---|
date | Tue, 15 Mar 2011 08:45:00 -0300 |
parents | |
children | 29b8a8893ba3 |
comparison
equal
deleted
inserted
replaced
25:e8d2be47a6b0 | 26:71b02443450a |
---|---|
1 using System; | |
2 using System.Linq; | |
3 using System.Web.Mvc; | |
4 using Agendas.Factories; | |
5 using Agendas.Web.Models; | |
6 using AltNetHispano.Agendas.Domain.Exceptions; | |
7 | |
8 namespace Agendas.Web.Controllers | |
9 { | |
10 public class PropuestaController : Controller | |
11 { | |
12 public ActionResult Index() | |
13 { | |
14 var model = GetIndexModel(); | |
15 return View(model); | |
16 } | |
17 | |
18 private static PropuestaIndexModel GetIndexModel() | |
19 { | |
20 var agenda = AgendaFactory.GetAgenda(); | |
21 | |
22 return new PropuestaIndexModel | |
23 { | |
24 Propuestas = from e in agenda.GetEventosPropuestos() | |
25 select new PropuestaDto {Id = e.Id.ToString(), Titulo = e.Titulo, Ponente = e.Ponente.Nombre} | |
26 }; | |
27 } | |
28 | |
29 [Authorize] | |
30 public ActionResult New() | |
31 { | |
32 return View(); | |
33 } | |
34 | |
35 [HttpPost] | |
36 [Authorize] | |
37 public ActionResult New(PropuestaNewModel model) | |
38 { | |
39 if (ModelState.IsValid) | |
40 { | |
41 var agenda = AgendaFactory.GetAgenda(); | |
42 | |
43 try | |
44 { | |
45 agenda.Proponer(model.Titulo, model.Ponente); | |
46 | |
47 return View("Index", GetIndexModel()); | |
48 } | |
49 catch (ValidationException ex) | |
50 { | |
51 ModelState.AddModelError("error", ex.ToString()); | |
52 } | |
53 } | |
54 return View(model); | |
55 } | |
56 | |
57 [Authorize] | |
58 public ActionResult Edit(string id) | |
59 { | |
60 var agenda = AgendaFactory.GetAgenda(); | |
61 var propuesta = agenda.GetEvento(new Guid(id)); | |
62 if (propuesta != null) | |
63 { | |
64 var model = new PropuestaEditModel | |
65 { | |
66 Id = id, | |
67 Titulo = propuesta.Titulo, | |
68 Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty | |
69 }; | |
70 return View(model); | |
71 } | |
72 ModelState.AddModelError("error", "No se encontró el Propuesta que quiere modificar"); | |
73 return View(); | |
74 } | |
75 | |
76 [HttpPost] | |
77 [Authorize] | |
78 public ActionResult Edit(PropuestaEditModel model) | |
79 { | |
80 if (ModelState.IsValid) | |
81 { | |
82 var agenda = AgendaFactory.GetAgenda(); | |
83 | |
84 try | |
85 { | |
86 agenda.ModificarPropuesta(new Guid(model.Id), model.Titulo, model.Ponente); | |
87 | |
88 return View("Index", GetIndexModel()); | |
89 } | |
90 catch (ValidationException ex) | |
91 { | |
92 ModelState.AddModelError("error", ex.ToString()); | |
93 } | |
94 } | |
95 return View(model); | |
96 } | |
97 } | |
98 } |