Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 284:79942e030118
#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
author | juanjose.montesdeocaarbos |
---|---|
date | Wed, 28 Dec 2011 09:35:27 -0300 |
parents | c61954d24c8c |
children |
rev | line source |
---|---|
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
1 using System; |
284
79942e030118
#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents:
235
diff
changeset
|
2 using System.Collections.Generic; |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
3 using System.Linq; |
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
4 using System.Web.Mvc; |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
5 using AltNetHispano.Agendas.Domain; |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
27
diff
changeset
|
6 using AltNetHispano.Agendas.Factories; |
217 | 7 using AltNetHispano.Agendas.Twitter; |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
27
diff
changeset
|
8 using AltNetHispano.Agendas.Web.Models; |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
9 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
27
diff
changeset
|
10 namespace AltNetHispano.Agendas.Web.Controllers |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
11 { |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
141
diff
changeset
|
12 public class EventoController : Controller |
117 | 13 { |
14 public ActionResult Index() | |
15 { | |
16 var agenda = AgendaFactory.GetAgenda(); | |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
17 |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
18 var model = new EventoIndexModel |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
19 { |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
20 ProximosEventos = from e in agenda.GetEventosActivos() |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
21 orderby e.FechaInicio |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
22 select new EventoDto |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
23 { |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
24 Id = e.Id.ToString(), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
25 Titulo = e.Titulo, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
26 Fecha = |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
27 e.FechaInicio.HasValue |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
28 ? e.FechaInicio.Value.ToShortDateString() + " " + |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
29 e.FechaInicio.Value.ToShortTimeString() |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
30 : string.Empty, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
31 Duracion = |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
32 e.FechaInicio.HasValue && e.FechaTermino.HasValue |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
33 ? e.FechaTermino.Value.Subtract(e.FechaInicio.Value). |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
34 ToString("c") |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
35 : string.Empty, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
36 Estado = e.Estado.Descripcion, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
37 PuedeAgendar = e.Estado.PuedePromover(Accion.Agendar), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
38 PuedeModificar = e.Estado.PuedePromover(Accion.Modificar), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
39 PuedeConfirmar = e.Estado.PuedePromover(Accion.Confirmar), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
40 PuedePublicar = e.Estado.PuedePromover(Accion.Publicar), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
41 PuedeCancelar = e.Estado.PuedePromover(Accion.Cancelar), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
42 PuedeDescartar = e.Estado.PuedePromover(Accion.Descartar), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
43 PuedeReAgendar = e.Estado.PuedePromover(Accion.ReAgendar), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
44 PuedeReProponer = e.Estado.PuedePromover(Accion.ReProponer) |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
45 } |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
46 }; |
117 | 47 return View(model); |
48 } | |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
49 |
179 | 50 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 51 public ActionResult Nuevo() |
117 | 52 { |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
53 var model = new EventoNewModel { Fecha = DateTime.Now, Duracion = new TimeSpan(2, 0, 0), Hora = new TimeSpan(18, 0, 0) }; |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
54 return View("Defaulteditor", model); |
117 | 55 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
56 |
117 | 57 [HttpPost] |
179 | 58 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 59 public ActionResult Nuevo(EventoNewModel model) |
117 | 60 { |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
61 return |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
62 GenericAction( |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
63 (agenda, m) => agenda.Agendar(m.Titulo, model.Ponentes, GenerarFechaInicio(m.Fecha, m.Hora), |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
64 GenerarFechaTermino(m.Fecha, m.Hora, m.Duracion), m.UrlInvitacion, |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
65 (TipoEvento) m.TipoEvento), |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
66 m => View("Defaulteditor", m), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
67 model); |
117 | 68 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
69 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
70 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 71 public ActionResult Confirmar(string id) |
117 | 72 { |
212
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
73 var agenda = AgendaFactory.GetAgenda(); |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
74 var evento = agenda.GetEvento(new Guid(id)); |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
75 |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
76 var model = new EventoConfirmModel |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
77 { |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
78 Id = id, |
217 | 79 Titulo = evento.Titulo, |
80 Recordatorios = new Recordatorios(evento) | |
212
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
81 }; |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
82 return View("Defaulteditor", model); |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
83 } |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
84 |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
85 [HttpPost] |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
86 [CustomAuthorize(Roles = Roles.Administrador)] |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
87 public ActionResult Confirmar(EventoConfirmModel model) |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
88 { |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
89 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
90 GenericAction( |
212
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
91 (agenda, m) => agenda.Confirmar(new Guid(m.Id)), |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
92 m => View("Defaulteditor", m), |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
93 model); |
117 | 94 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
95 |
179 | 96 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 97 public ActionResult Publicar(string id) |
117 | 98 { |
99 var agenda = AgendaFactory.GetAgenda(); | |
162 | 100 var evento = agenda.GetEvento(new Guid(id)); |
101 | |
102 var model = new EventoPublicarModel | |
103 { | |
104 Id = id, | |
105 Titulo = evento.Titulo, | |
106 NroOrden = 0, //TODO: Obtener el último y sumarle uno. | |
107 UrlWiki = evento.UrlWiki, | |
108 DuracionReal = new TimeSpan(0, 0, 0) | |
109 }; | |
166 | 110 return View("Defaulteditor", model); |
162 | 111 } |
117 | 112 |
162 | 113 [HttpPost] |
179 | 114 [CustomAuthorize(Roles = Roles.Administrador)] |
162 | 115 public ActionResult Publicar(EventoPublicarModel model) |
116 { | |
284
79942e030118
#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents:
235
diff
changeset
|
117 var a = AgendaFactory.GetAgenda(); |
79942e030118
#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents:
235
diff
changeset
|
118 a.IndicarPatrocinadores(new Guid(model.Id), model.Patrocinadores); |
79942e030118
#123: Patrocinadores de las vans: Se verifica que para publicar una Van, debe tener al menos un Patrocinador.
juanjose.montesdeocaarbos
parents:
235
diff
changeset
|
119 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
120 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
121 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
122 (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
|
123 m => View("Defaulteditor", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
124 model); |
117 | 125 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
126 |
179 | 127 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 128 public ActionResult Modificar(string id) |
129 { | |
130 var agenda = AgendaFactory.GetAgenda(); | |
131 var evento = agenda.GetEvento(new Guid(id)); | |
132 | |
133 var model = new EventoEditModel | |
134 { | |
135 Id = id, | |
136 Titulo = evento.Titulo, | |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
137 Ponentes = evento.Ponentes.Select(p=>p.Id), |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
138 Fecha = evento.FechaInicio, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
139 Hora = evento.FechaInicio != null ? evento.FechaInicio.Value.TimeOfDay : (TimeSpan?)null, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
140 Duracion = evento.FechaInicio!=null && evento.FechaTermino!=null ? evento.FechaTermino.Value.Subtract(evento.FechaInicio.Value) : (TimeSpan?) null, |
118 | 141 UrlInvitacion = evento.UrlInvitacion |
142 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
143 return View("Defaulteditor", model); |
118 | 144 } |
145 | |
117 | 146 [HttpPost] |
179 | 147 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 148 public ActionResult Modificar(EventoEditModel model) |
117 | 149 { |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
150 return |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
151 GenericAction( |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
152 (agenda, m) => |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
153 agenda.ModificarEvento(new Guid(m.Id), m.Titulo, m.Ponentes, GenerarFechaInicio(m.Fecha, m.Hora), |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
154 GenerarFechaTermino(m.Fecha, m.Hora, m.Duracion), m.UrlInvitacion), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
155 m => View("Defaulteditor", m), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
156 model); |
117 | 157 } |
118 | 158 |
179 | 159 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 160 public ActionResult Agendar(string id) |
161 { | |
162 var agenda = AgendaFactory.GetAgenda(); | |
163 var evento = agenda.GetEvento(new Guid(id)); | |
164 | |
165 var model = new EventoAgendarModel | |
166 { | |
167 Id = id, | |
168 Titulo = evento.Titulo, | |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
169 Ponentes = evento.Ponentes.Select(p=>p.Id), |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
170 Fecha = evento.FechaInicio, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
171 Hora = evento.FechaInicio != null ? evento.FechaInicio.Value.TimeOfDay : (TimeSpan?)null, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
172 Duracion = evento.FechaInicio != null && evento.FechaTermino != null ? evento.FechaTermino.Value.Subtract(evento.FechaInicio.Value) : (TimeSpan?)null, |
118 | 173 UrlInvitacion = evento.UrlInvitacion |
174 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
175 return View("Defaulteditor", model); |
118 | 176 } |
177 | |
178 [HttpPost] | |
179 | 179 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 180 public ActionResult Agendar(EventoAgendarModel model) |
181 { | |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
182 return |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
183 GenericAction( |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
184 (agenda, m) => |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
185 agenda.ModificarEvento(new Guid(m.Id), m.Titulo, m.Ponentes, GenerarFechaInicio(m.Fecha, m.Hora), |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
186 GenerarFechaTermino(m.Fecha, m.Hora, m.Duracion), m.UrlInvitacion), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
187 m => View("Defaulteditor", m), |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
188 model); |
118 | 189 } |
190 | |
179 | 191 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 192 public ActionResult Proponer() |
193 { | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
194 var model = new PropuestaNewModel(); |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
195 return View("Defaulteditor", model); |
118 | 196 } |
197 | |
198 [HttpPost] | |
179 | 199 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 200 public ActionResult Proponer(PropuestaNewModel model) |
201 { | |
183
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( |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
204 (agenda, m) => agenda.Proponer(m.Titulo, m.Ponentes, m.UrlInvitacion, (TipoEvento)m.TipoEvento), |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
205 m => View("Defaulteditor", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
206 model); |
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 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
210 public ActionResult Cancelar(string id) |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
211 { |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
212 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
213 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
214 (agenda, m) => agenda.Cancelar(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
215 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
216 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
217 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
218 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
219 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
220 public ActionResult Descartar(string id) |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
221 { |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
222 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
223 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
224 (agenda, m) => agenda.Descartar(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
225 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
226 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
227 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
228 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
229 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
230 public ActionResult ReAgendar(string id) |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
231 { |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
232 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
233 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
234 (agenda, m) => agenda.ReAgendar(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
235 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
236 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
237 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
238 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
239 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
240 public ActionResult ReProponer(string id) |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
241 { |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
242 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
243 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
244 (agenda, m) => agenda.ReProponer(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
245 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
246 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
247 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
248 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
249 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
|
250 { |
118 | 251 if (ModelState.IsValid) |
252 { | |
253 var agenda = AgendaFactory.GetAgenda(); | |
254 | |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
255 var r = action.Invoke(agenda, model); |
118 | 256 if (r.Succeful) |
167 | 257 { |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
258 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
|
259 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
|
260 this.AddWarning(log.WarningMessage); |
118 | 261 return RedirectToAction("Index"); |
167 | 262 } |
208
607384590bf8
Mejorando el mensaje de error que se muestra cuando hay un error de validación del lado del servidor
nelopauselli
parents:
185
diff
changeset
|
263 ModelState.AddModelError(string.Empty, r.Message); |
118 | 264 } |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
265 return actionresultOnFail.Invoke(model); |
118 | 266 } |
179 | 267 |
185
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
268 private DateTime? GenerarFechaInicio(DateTime? fecha, TimeSpan? hora) |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
269 { |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
270 return fecha.HasValue && hora.HasValue |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
271 ? new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day, hora.Value.Hours, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
272 hora.Value.Minutes, hora.Value.Seconds, DateTimeKind.Utc) |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
273 : (DateTime?) null; |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
274 } |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
275 private DateTime? GenerarFechaTermino(DateTime? fecha, TimeSpan? hora, TimeSpan? duracion) |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
276 { |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
277 return fecha.HasValue && hora.HasValue && duracion.HasValue |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
278 ? new DateTime(fecha.Value.Year, fecha.Value.Month, fecha.Value.Day, hora.Value.Hours, |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
279 hora.Value.Minutes, hora.Value.Seconds, DateTimeKind.Utc).Add(duracion.Value) |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
280 : (DateTime?) null; |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
281 } |
118 | 282 |
117 | 283 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
284 } |