annotate Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs @ 27:29b8a8893ba3

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