annotate Agendas/trunk/src/Agendas.Web/Controllers/PropuestaController.cs @ 106:80c22175c9b5

agregado de tipo de evento (van, cafe, grupoestudio) agregado de tipo de evento en el alta de evento y en el alta de propuestas desde la app web algunas correcciones en el publicador del blog agregado de textos para publicar en el blog eventos de tipo alt.net cafe
author jorge.rowies
date Mon, 06 Jun 2011 14:07:12 -0300
parents 2434c2323f3d
children
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;
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
4 using AltNetHispano.Agendas.Domain;
34
475be11edf56 Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents: 27
diff changeset
5 using AltNetHispano.Agendas.Factories;
475be11edf56 Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents: 27
diff changeset
6 using AltNetHispano.Agendas.Web.Models;
26
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
7
34
475be11edf56 Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents: 27
diff changeset
8 namespace AltNetHispano.Agendas.Web.Controllers
26
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
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
17 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
18 Propuestas = from e in agenda.GetEventosPropuestos()
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
19 select
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
20 new PropuestaDto
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
21 {
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
22 Id = e.Id.ToString(),
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
23 Titulo = e.Titulo,
97
2434c2323f3d En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents: 94
diff changeset
24 Ponente = e.Ponente != null ? e.Ponente.Nombre : string.Empty
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
25 }
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
26 };
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
28 return View(model);
26
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 [Authorize]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
32 public ActionResult New()
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
33 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
34 return View(new PropuestaNewModel());
26
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
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
37 [HttpPost]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
38 [Authorize]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
39 public ActionResult New(PropuestaNewModel model)
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 if (ModelState.IsValid)
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
42 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
43 var agenda = AgendaFactory.GetAgenda();
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
44
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
45 var r = agenda.Proponer(model.Titulo, model.Ponente, model.UrlInvitacion, (TipoEvento)model.Tipo);
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 34
diff changeset
46 if (r.Succeful)
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
47 return RedirectToAction("Index");
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 34
diff changeset
48 ModelState.AddModelError("error", r.ToString());
26
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));
82
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
58
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
59 var model = new PropuestaEditModel
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
60 {
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
61 Id = id,
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
62 Titulo = propuesta.Titulo,
97
2434c2323f3d En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents: 94
diff changeset
63 Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty,
82
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
64 UrlInvitacion = propuesta.UrlInvitacion
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
65 };
c8897b1c6f49 Manejo de excepciones en sitio web
nelopauselli
parents: 79
diff changeset
66 return View(model);
26
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
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
69 [HttpPost]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
70 [Authorize]
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
71 public ActionResult Edit(PropuestaEditModel model)
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
72 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
73 if (ModelState.IsValid)
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
74 {
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
75 var agenda = AgendaFactory.GetAgenda();
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
76
75
96d7609f2e08 Agendar evento propuesto
nelopauselli
parents: 54
diff changeset
77 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
78 if (r.Succeful)
27
29b8a8893ba3 Mejoras menores en UI
nelo@MTEySS.neluz.int
parents: 26
diff changeset
79 return RedirectToAction("Index");
53
d149bfea3892 Tratamos las validaciones como resultados y no como excepciones, dejamos las
nelopauselli
parents: 34
diff changeset
80 ModelState.AddModelError("error", r.ToString());
26
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 return View(model);
71b02443450a UI de Propuestas de VANs
nelo@MTEySS.neluz.int
parents:
diff changeset
83 }
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 }