annotate Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 183:212c664db5aa

Generalización del manejo de las acciones sobre eventos
author nelopauselli
date Mon, 08 Aug 2011 22:27:00 -0300
parents beeb48ddb44a
children 2d02adb79322
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 {
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 141
diff changeset
10 public class EventoController : Controller
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
11 {
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
12 public ActionResult Index()
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
13 {
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
14 var agenda = AgendaFactory.GetAgenda();
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
15
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
16 var model = new EventoIndexModel
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
17 {
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
18 ProximosEventos = from e in agenda.GetEventosActivos()
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
19 orderby e.Fecha
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
20 select new EventoDto
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
21 {
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
22 Id = e.Id.ToString(),
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
23 Titulo = e.Titulo,
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
24 Fecha = e.Fecha.HasValue ? e.Fecha.Value.ToShortDateString() : string.Empty,
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
25 Estado = e.Estado.Descripcion,
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
26 PuedeAgendar = e.Estado.PuedePromover(Accion.Agendar),
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
27 PuedeModificar = e.Estado.PuedePromover(Accion.Modificar),
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
28 PuedeConfirmar = e.Estado.PuedePromover(Accion.Confirmar),
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
29 PuedePublicar = e.Estado.PuedePromover(Accion.Publicar),
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
30 PuedeCancelar = e.Estado.PuedePromover(Accion.Cancelar),
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
31 PuedeDescartar = e.Estado.PuedePromover(Accion.Descartar),
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
32 PuedeReAgendar = e.Estado.PuedePromover(Accion.ReAgendar),
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 133
diff changeset
33 PuedeReProponer = e.Estado.PuedePromover(Accion.ReProponer)
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
34 }
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
35 };
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
36 return View(model);
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
37 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
38
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
39 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
40 public ActionResult Nuevo()
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
41 {
155
23aaf98b8377 Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents: 145
diff changeset
42 var model = new EventoNewModel {Fecha = DateTime.Now};
23aaf98b8377 Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents: 145
diff changeset
43 return View("Defaulteditor", model);
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
44 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
45
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
46 [HttpPost]
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
47 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
48 public ActionResult Nuevo(EventoNewModel model)
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
49 {
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
50 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
51 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
52 (agenda, m) => agenda.Agendar(m.Titulo, m.Ponente, m.Fecha, m.UrlInvitacion, (TipoEvento) m.TipoEvento),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
53 m => View("Defaulteditor", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
54 model);
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
55 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
56
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
57 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
58 public ActionResult Confirmar(string id)
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
59 {
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
60 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
61 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
62 (agenda, m) => agenda.Confirmar(m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
63 m => View("Index", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
64 new Guid(id));
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
65 }
116
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
66
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
67 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
68 public ActionResult Publicar(string id)
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
69 {
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
70 var agenda = AgendaFactory.GetAgenda();
162
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
71 var evento = agenda.GetEvento(new Guid(id));
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
72
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
73 var model = new EventoPublicarModel
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
74 {
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
75 Id = id,
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
76 Titulo = evento.Titulo,
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
77 NroOrden = 0, //TODO: Obtener el último y sumarle uno.
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
78 UrlWiki = evento.UrlWiki,
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
79 DuracionReal = new TimeSpan(0, 0, 0)
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
80 };
166
fae2feae499e Usando DefaultEditor para Publicar
nelopauselli
parents: 162
diff changeset
81 return View("Defaulteditor", model);
162
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
82 }
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
83
162
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
84 [HttpPost]
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
85 [CustomAuthorize(Roles = Roles.Administrador)]
162
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
86 public ActionResult Publicar(EventoPublicarModel model)
557c386fcecc Ticket 153: UI de Publicar.
juanjose.montesdeocaarbos
parents: 155
diff changeset
87 {
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
88 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
89 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
90 (agenda, m) => agenda.Publicar(new Guid(m.Id), m.NroOrden, m.UrlWiki, m.DuracionReal),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
91 m => View("Defaulteditor", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
92 model);
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
93 }
116
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
94
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
95 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
96 public ActionResult Modificar(string id)
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
97 {
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
98 var agenda = AgendaFactory.GetAgenda();
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
99 var evento = agenda.GetEvento(new Guid(id));
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
100
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
101 var model = new EventoEditModel
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
102 {
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
103 Id = id,
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
104 Titulo = evento.Titulo,
145
e6e6bfb1da9e En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents: 144
diff changeset
105 Ponente = evento.Ponente != null ? evento.Ponente.Id : Guid.Empty,
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
106 Fecha = evento.Fecha,
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
107 UrlInvitacion = evento.UrlInvitacion
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
108 };
155
23aaf98b8377 Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents: 145
diff changeset
109 return View("Defaulteditor", model);
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
110 }
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
111
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
112 [HttpPost]
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
113 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
114 public ActionResult Modificar(EventoEditModel model)
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
115 {
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
116 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
117 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
118 (agenda, m) => agenda.ModificarEvento(new Guid(m.Id), m.Titulo, m.Ponente, m.Fecha.Value, m.UrlInvitacion),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
119 m => View("Defaulteditor", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
120 model);
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
121 }
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
122
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
123 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
124 public ActionResult Agendar(string id)
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
125 {
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
126 var agenda = AgendaFactory.GetAgenda();
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
127 var evento = agenda.GetEvento(new Guid(id));
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
128
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
129 var model = new EventoAgendarModel
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
130 {
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
131 Id = id,
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
132 Titulo = evento.Titulo,
145
e6e6bfb1da9e En la edición de un evento (nuevo, propuesta, modificación), el ponente se selecciona desde un combo.
Nelo@Guinea.neluz.int
parents: 144
diff changeset
133 Ponente = evento.Ponente != null ? evento.Ponente.Id : Guid.Empty,
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
134 Fecha = evento.Fecha,
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
135 UrlInvitacion = evento.UrlInvitacion
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
136 };
155
23aaf98b8377 Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents: 145
diff changeset
137 return View("Defaulteditor", model);
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
138 }
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
139
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
140 [HttpPost]
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
141 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
142 public ActionResult Agendar(EventoAgendarModel model)
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
143 {
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
144 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
145 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
146 (agenda, m) => agenda.ModificarEvento(new Guid(m.Id), m.Titulo, m.Ponente, m.Fecha.Value, m.UrlInvitacion),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
147 m => View("Defaulteditor", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
148 model);
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
149 }
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
150
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
151 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
152 public ActionResult Proponer()
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
153 {
155
23aaf98b8377 Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents: 145
diff changeset
154 var model = new PropuestaNewModel();
23aaf98b8377 Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents: 145
diff changeset
155 return View("Defaulteditor", model);
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
156 }
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
157
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
158 [HttpPost]
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
159 [CustomAuthorize(Roles = Roles.Administrador)]
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
160 public ActionResult Proponer(PropuestaNewModel model)
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
161 {
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
162 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
163 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
164 (agenda, m) => agenda.Proponer(m.Titulo, m.Ponente, m.UrlInvitacion, (TipoEvento)m.TipoEvento),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
165 m => View("Defaulteditor", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
166 model);
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
167 }
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
168
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
169 [CustomAuthorize(Roles = Roles.Administrador)]
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
170 public ActionResult Cancelar(string id)
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
171 {
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
172 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
173 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
174 (agenda, m) => agenda.Cancelar(m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
175 m => View("Index", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
176 new Guid(id));
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
177 }
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
178
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
179 [CustomAuthorize(Roles = Roles.Administrador)]
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
180 public ActionResult Descartar(string id)
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
181 {
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
182 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
183 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
184 (agenda, m) => agenda.Descartar(m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
185 m => View("Index", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
186 new Guid(id));
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
187 }
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
188
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
189 [CustomAuthorize(Roles = Roles.Administrador)]
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
190 public ActionResult ReAgendar(string id)
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
191 {
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
192 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
193 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
194 (agenda, m) => agenda.ReAgendar(m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
195 m => View("Index", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
196 new Guid(id));
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
197 }
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
198
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
199 [CustomAuthorize(Roles = Roles.Administrador)]
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
200 public ActionResult ReProponer(string id)
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
201 {
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
202 return
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
203 GenericAction(
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
204 (agenda, m) => agenda.ReProponer(m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
205 m => View("Index", m),
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
206 new Guid(id));
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
207 }
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
208
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
209 private ActionResult GenericAction<TModel>(Func<Agenda, TModel, EventoResultado> action, Func<TModel, ActionResult> actionresultOnFail, TModel model)
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
210 {
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
211 if (ModelState.IsValid)
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
212 {
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
213 var agenda = AgendaFactory.GetAgenda();
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
214
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
215 var r = action.Invoke(agenda, model);
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
216 if (r.Succeful)
167
ea85bd893247 Ajustes menores de UI
nelopauselli
parents: 166
diff changeset
217 {
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
218 this.AddNotification(r.Message);
182
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 179
diff changeset
219 foreach (var log in r.Warnings)
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 179
diff changeset
220 this.AddWarning(log.WarningMessage);
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
221 return RedirectToAction("Index");
167
ea85bd893247 Ajustes menores de UI
nelopauselli
parents: 166
diff changeset
222 }
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
223 ModelState.AddModelError("error", r.ToString());
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
224 }
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 182
diff changeset
225 return actionresultOnFail.Invoke(model);
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
226 }
179
1deccd6c3cb2 Aplicando seguridad x roles en sitio web
nelopauselli
parents: 177
diff changeset
227
118
b74734a1a755 Manejo de eventos por estado
Nelo@Kenia.neluz.int
parents: 117
diff changeset
228
117
7ef7e4bb71f6 manejo de mensajes al usuario
Nelo@Kenia.neluz.int
parents: 116
diff changeset
229 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
230 }