Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 266:dba5d41bc7bf
BUG: Guardar persona con twitter ya existente genera error.
author | juanjose.montesdeocaarbos |
---|---|
date | Tue, 25 Oct 2011 23:22:10 -0300 |
parents | c61954d24c8c |
children | 79942e030118 |
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; |
217 | 6 using AltNetHispano.Agendas.Twitter; |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
27
diff
changeset
|
7 using AltNetHispano.Agendas.Web.Models; |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
8 |
34
475be11edf56
Ajuste en los nombre de los assemblies y namespaces
nelo@MTEySS.neluz.int
parents:
27
diff
changeset
|
9 namespace AltNetHispano.Agendas.Web.Controllers |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
10 { |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
141
diff
changeset
|
11 public class EventoController : Controller |
117 | 12 { |
13 public ActionResult Index() | |
14 { | |
15 var agenda = AgendaFactory.GetAgenda(); | |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
16 |
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
|
17 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
|
18 { |
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 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
|
20 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
|
21 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
|
22 { |
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 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
|
24 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
|
25 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
|
26 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
|
27 ? 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
|
28 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
|
29 : 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
|
30 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
|
31 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
|
32 ? 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
|
33 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
|
34 : 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
|
35 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
|
36 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
|
37 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
|
38 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
|
39 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
|
40 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
|
41 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
|
42 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
|
43 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
|
44 } |
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 }; |
117 | 46 return View(model); |
47 } | |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
48 |
179 | 49 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 50 public ActionResult Nuevo() |
117 | 51 { |
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
|
52 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
|
53 return View("Defaulteditor", model); |
117 | 54 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
55 |
117 | 56 [HttpPost] |
179 | 57 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 58 public ActionResult Nuevo(EventoNewModel model) |
117 | 59 { |
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
|
60 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
|
61 GenericAction( |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
62 (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
|
63 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
|
64 (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
|
65 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
|
66 model); |
117 | 67 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
68 |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
69 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 70 public ActionResult Confirmar(string id) |
117 | 71 { |
212
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
72 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
|
73 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
|
74 |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
75 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
|
76 { |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
77 Id = id, |
217 | 78 Titulo = evento.Titulo, |
79 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
|
80 }; |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
81 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
|
82 } |
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 [HttpPost] |
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
85 [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
|
86 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
|
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( |
212
6944c54f834f
Ticket 175: Se cambia el mensaje por una pantalla de confirmación, que sugiere los textos.
juanjose.montesdeocaarbos
parents:
208
diff
changeset
|
90 (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
|
91 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
|
92 model); |
117 | 93 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
94 |
179 | 95 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 96 public ActionResult Publicar(string id) |
117 | 97 { |
98 var agenda = AgendaFactory.GetAgenda(); | |
162 | 99 var evento = agenda.GetEvento(new Guid(id)); |
100 | |
101 var model = new EventoPublicarModel | |
102 { | |
103 Id = id, | |
104 Titulo = evento.Titulo, | |
105 NroOrden = 0, //TODO: Obtener el último y sumarle uno. | |
106 UrlWiki = evento.UrlWiki, | |
107 DuracionReal = new TimeSpan(0, 0, 0) | |
108 }; | |
166 | 109 return View("Defaulteditor", model); |
162 | 110 } |
117 | 111 |
162 | 112 [HttpPost] |
179 | 113 [CustomAuthorize(Roles = Roles.Administrador)] |
162 | 114 public ActionResult Publicar(EventoPublicarModel model) |
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.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
|
119 m => View("Defaulteditor", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
120 model); |
117 | 121 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
122 |
179 | 123 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 124 public ActionResult Modificar(string id) |
125 { | |
126 var agenda = AgendaFactory.GetAgenda(); | |
127 var evento = agenda.GetEvento(new Guid(id)); | |
128 | |
129 var model = new EventoEditModel | |
130 { | |
131 Id = id, | |
132 Titulo = evento.Titulo, | |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
133 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
|
134 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
|
135 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
|
136 Duracion = evento.FechaInicio!=null && evento.FechaTermino!=null ? evento.FechaTermino.Value.Subtract(evento.FechaInicio.Value) : (TimeSpan?) null, |
118 | 137 UrlInvitacion = evento.UrlInvitacion |
138 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
139 return View("Defaulteditor", model); |
118 | 140 } |
141 | |
117 | 142 [HttpPost] |
179 | 143 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 144 public ActionResult Modificar(EventoEditModel model) |
117 | 145 { |
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
|
146 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
|
147 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
|
148 (agenda, m) => |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
149 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
|
150 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
|
151 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
|
152 model); |
117 | 153 } |
118 | 154 |
179 | 155 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 156 public ActionResult Agendar(string id) |
157 { | |
158 var agenda = AgendaFactory.GetAgenda(); | |
159 var evento = agenda.GetEvento(new Guid(id)); | |
160 | |
161 var model = new EventoAgendarModel | |
162 { | |
163 Id = id, | |
164 Titulo = evento.Titulo, | |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
165 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
|
166 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
|
167 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
|
168 Duracion = evento.FechaInicio != null && evento.FechaTermino != null ? evento.FechaTermino.Value.Subtract(evento.FechaInicio.Value) : (TimeSpan?)null, |
118 | 169 UrlInvitacion = evento.UrlInvitacion |
170 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
171 return View("Defaulteditor", model); |
118 | 172 } |
173 | |
174 [HttpPost] | |
179 | 175 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 176 public ActionResult Agendar(EventoAgendarModel model) |
177 { | |
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
|
178 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
|
179 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
|
180 (agenda, m) => |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
181 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
|
182 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
|
183 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
|
184 model); |
118 | 185 } |
186 | |
179 | 187 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 188 public ActionResult Proponer() |
189 { | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
190 var model = new PropuestaNewModel(); |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
191 return View("Defaulteditor", model); |
118 | 192 } |
193 | |
194 [HttpPost] | |
179 | 195 [CustomAuthorize(Roles = Roles.Administrador)] |
118 | 196 public ActionResult Proponer(PropuestaNewModel model) |
197 { | |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
198 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
199 GenericAction( |
235
c61954d24c8c
Quitando ponente principal y utilizando siempre la lista de ponentes
nelopauselli
parents:
225
diff
changeset
|
200 (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
|
201 m => View("Defaulteditor", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
202 model); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
203 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
204 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
205 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
206 public ActionResult Cancelar(string 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 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
209 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
210 (agenda, m) => agenda.Cancelar(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
211 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
212 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
213 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
214 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
215 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
216 public ActionResult Descartar(string 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 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
219 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
220 (agenda, m) => agenda.Descartar(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
221 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
222 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
223 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
224 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
225 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
226 public ActionResult ReAgendar(string 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 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
229 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
230 (agenda, m) => agenda.ReAgendar(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
231 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
232 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
233 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
234 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
235 [CustomAuthorize(Roles = Roles.Administrador)] |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
236 public ActionResult ReProponer(string 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 return |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
239 GenericAction( |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
240 (agenda, m) => agenda.ReProponer(m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
241 m => View("Index", m), |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
242 new Guid(id)); |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
243 } |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
244 |
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
245 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
|
246 { |
118 | 247 if (ModelState.IsValid) |
248 { | |
249 var agenda = AgendaFactory.GetAgenda(); | |
250 | |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
251 var r = action.Invoke(agenda, model); |
118 | 252 if (r.Succeful) |
167 | 253 { |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
254 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
|
255 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
|
256 this.AddWarning(log.WarningMessage); |
118 | 257 return RedirectToAction("Index"); |
167 | 258 } |
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
|
259 ModelState.AddModelError(string.Empty, r.Message); |
118 | 260 } |
183
212c664db5aa
Generalización del manejo de las acciones sobre eventos
nelopauselli
parents:
182
diff
changeset
|
261 return actionresultOnFail.Invoke(model); |
118 | 262 } |
179 | 263 |
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
|
264 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
|
265 { |
2d02adb79322
Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents:
183
diff
changeset
|
266 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
|
267 ? 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
|
268 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
|
269 : (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
|
270 } |
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 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
|
272 { |
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 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
|
274 ? 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
|
275 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
|
276 : (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
|
277 } |
118 | 278 |
117 | 279 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
280 } |