Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 116:53bcd338542b
acciones de confirmar y publicar desde la UI
author | Nelo@Kenia.neluz.int |
---|---|
date | Sun, 19 Jun 2011 13:00:02 -0300 |
parents | 80c22175c9b5 |
children | 7ef7e4bb71f6 |
rev | line source |
---|---|
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
1 using System; |
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
2 using System.Linq; |
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
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; |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
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 |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
9 { |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
10 public class EventoController : Controller |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
11 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
12 public ActionResult Index() |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
13 { |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
14 var agenda = AgendaFactory.GetAgenda(); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
15 |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
16 var model = new EventoIndexModel |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
17 { |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
18 ProximosEventos = from e in agenda.GetEventosAgendados() |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
19 orderby e.Fecha |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
20 select new EventoDto |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
21 { |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
22 Id = e.Id.ToString(), |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
23 Titulo = e.Titulo, |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
24 Fecha = e.Fecha.Value, |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
25 PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar), |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
26 PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar), |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
27 PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar) |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
28 } |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
29 }; |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
30 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
31 return View(model); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
32 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
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 [Authorize] |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
35 public ActionResult New() |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
36 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
37 return View(new EventoNewModel()); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
38 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
39 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
40 [HttpPost] |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
41 [Authorize] |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
42 public ActionResult New(EventoNewModel model) |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
43 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
44 if (ModelState.IsValid) |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
45 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
46 var agenda = AgendaFactory.GetAgenda(); |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
47 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
48 var r = agenda.Agendar(model.Titulo, model.Ponente, model.Fecha, |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
49 model.UrlInvitacion, (TipoEvento)model.Tipo); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
50 if (r.Succeful) |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
51 return RedirectToAction("Index"); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
52 ModelState.AddModelError("error", r.ToString()); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
53 } |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
54 return View(model); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
55 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
56 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
57 [Authorize] |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
58 public ActionResult Edit(string id) |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
59 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
60 var agenda = AgendaFactory.GetAgenda(); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
61 var evento = agenda.GetEvento(new Guid(id)); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
62 |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
63 var model = new EventoEditModel |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
64 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
65 Id = id, |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
66 Titulo = evento.Titulo, |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
67 Ponente = evento.Ponente != null ? evento.Ponente.Nombre : string.Empty, |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
68 Fecha = evento.Fecha, |
89
24e9488ac152
mapeo de property UrlInvitacion entre viewmodel y entity
jorge.rowies
parents:
82
diff
changeset
|
69 UrlInvitacion = evento.UrlInvitacion |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
70 }; |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
71 return View(model); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
72 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
73 |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
74 [Authorize] |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
75 public ActionResult Confirm(string id) |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
76 { |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
77 var agenda = AgendaFactory.GetAgenda(); |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
78 agenda.Confirmar(new Guid(id)); |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
79 return RedirectToAction("Index"); |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
80 } |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
81 |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
82 [Authorize] |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
83 public ActionResult Publish(string id) |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
84 { |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
85 var agenda = AgendaFactory.GetAgenda(); |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
86 agenda.Publicar(new Guid(id), 0, string.Empty); |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
87 return RedirectToAction("Index"); |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
88 } |
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
89 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
90 [HttpPost] |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
91 [Authorize] |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
92 public ActionResult Edit(EventoEditModel model) |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
93 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
94 if (ModelState.IsValid) |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
95 { |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
96 var agenda = AgendaFactory.GetAgenda(); |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
97 |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
98 var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
99 if (r.Succeful) |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
100 return RedirectToAction("Index"); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
101 ModelState.AddModelError("error", r.ToString()); |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
102 } |
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
103 return View(model); |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
104 } |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
105 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
106 } |