annotate Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs @ 79:8df9db937434

Url de invitación en la UI: validación y persistencia
author nelopauselli
date Tue, 24 May 2011 18:08:59 -0300
parents 96d7609f2e08
children c8897b1c6f49
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;
34
475be11edf56 Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents: 27
diff changeset
4 using AltNetHispano.Agendas.Factories;
475be11edf56 Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents: 27
diff changeset
5 using AltNetHispano.Agendas.Web.Models;
26
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
6
34
475be11edf56 Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents: 27
diff changeset
7 namespace AltNetHispano.Agendas.Web.Controllers
26
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
8 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
9 public class PropuestaController : Controller
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
10 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
11 public ActionResult Index()
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
12 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
13 var agenda = AgendaFactory.GetAgenda();
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
14
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
15 var model = new PropuestaIndexModel
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
16 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
17 Propuestas = from e in agenda.GetEventosPropuestos()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
18 select
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
19 new PropuestaDto
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
20 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
21 Id = e.Id.ToString(),
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
22 Titulo = e.Titulo,
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
23 Ponente = e.Ponente != null ? e.Ponente.Nombre : string.Empty
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
24 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
25 };
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
26
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
27 return View(model);
26
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
28 }
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 [Authorize]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
31 public ActionResult New()
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
32 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
33 return View();
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
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
36 [HttpPost]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
37 [Authorize]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
38 public ActionResult New(PropuestaNewModel model)
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
39 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
40 if (ModelState.IsValid)
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
41 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
42 var agenda = AgendaFactory.GetAgenda();
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
43
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
44 var r = agenda.Proponer(model.Titulo, model.Ponente, model.UrlInvitacion);
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 34
diff changeset
45 if (r.Succeful)
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
46 return RedirectToAction("Index");
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 34
diff changeset
47 ModelState.AddModelError("error", r.ToString());
26
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 return View(model);
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
50 }
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 [Authorize]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
53 public ActionResult Edit(string id)
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
54 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
55 var agenda = AgendaFactory.GetAgenda();
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
56 var propuesta = agenda.GetEvento(new Guid(id));
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
57 if (propuesta != null)
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
58 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
59 var model = new PropuestaEditModel
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
60 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
61 Id = id,
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
62 Titulo = propuesta.Titulo,
79
8df9db937434 Url de invitación en la UI: validación y persistencia
nelopauselli
parents: 75
diff changeset
63 Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty,
8df9db937434 Url de invitación en la UI: validación y persistencia
nelopauselli
parents: 75
diff changeset
64 UrlInvitacion = propuesta.UrlInvitacion
26
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
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
80 var r = agenda.ModificarPropuesta(new Guid(model.Id), model.Titulo, model.Ponente, model.UrlInvitacion);
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 34
diff changeset
81 if (r.Succeful)
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
82 return RedirectToAction("Index");
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 34
diff changeset
83 ModelState.AddModelError("error", r.ToString());
26
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
84 }
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
85 return View(model);
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
86 }
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 }