Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 171:4e4b758ab744
Ticket 155: Se carga la Duración correcta, formateada en HH:MM
author | juanjose.montesdeocaarbos |
---|---|
date | Sat, 06 Aug 2011 13:46:56 -0300 |
parents | 5c94b052d838 |
children | 784d81e32366 |
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 | 11 { |
12 public ActionResult Index() | |
13 { | |
14 var agenda = AgendaFactory.GetAgenda(); | |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
97
diff
changeset
|
15 |
117 | 16 var model = new EventoIndexModel |
118 | 17 { |
18 ProximosEventos = from e in agenda.GetEventosActivos() | |
19 orderby e.Fecha | |
20 select new EventoDto | |
21 { | |
22 Id = e.Id.ToString(), | |
23 Titulo = e.Titulo, | |
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 | 34 } |
35 }; | |
117 | 36 return View(model); |
37 } | |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
38 |
117 | 39 [Authorize] |
118 | 40 public ActionResult Nuevo() |
117 | 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 | 44 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
45 |
117 | 46 [HttpPost] |
47 [Authorize] | |
118 | 48 public ActionResult Nuevo(EventoNewModel model) |
117 | 49 { |
50 if (ModelState.IsValid) | |
51 { | |
52 var agenda = AgendaFactory.GetAgenda(); | |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
53 |
117 | 54 var r = agenda.Agendar(model.Titulo, model.Ponente, model.Fecha, |
141
a5ff4de4a1d3
EditorForModel en Nuevo Evento y Proponer
Nelo@Guinea.neluz.int
parents:
140
diff
changeset
|
55 model.UrlInvitacion, (TipoEvento)model.TipoEvento); |
117 | 56 if (r.Succeful) |
57 { | |
167 | 58 this.AddNotification("Evento creado"); |
117 | 59 return RedirectToAction("Index"); |
60 } | |
61 ModelState.AddModelError("error", r.ToString()); | |
62 } | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
63 return View("Defaulteditor", model); |
117 | 64 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
65 |
117 | 66 [Authorize] |
118 | 67 public ActionResult Confirmar(string id) |
117 | 68 { |
69 var agenda = AgendaFactory.GetAgenda(); | |
167 | 70 |
71 var r = agenda.Confirmar(new Guid(id)); | |
72 if (r.Succeful) | |
73 this.AddNotification("Evento confirmado"); | |
74 else | |
75 this.AddError("Evento confirmado"); | |
117 | 76 |
77 return RedirectToAction("Index"); | |
78 } | |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
79 |
167 | 80 [Authorize] |
118 | 81 public ActionResult Publicar(string id) |
117 | 82 { |
83 var agenda = AgendaFactory.GetAgenda(); | |
162 | 84 var evento = agenda.GetEvento(new Guid(id)); |
85 | |
86 var model = new EventoPublicarModel | |
87 { | |
88 Id = id, | |
89 Titulo = evento.Titulo, | |
90 NroOrden = 0, //TODO: Obtener el último y sumarle uno. | |
91 UrlWiki = evento.UrlWiki, | |
92 DuracionReal = new TimeSpan(0, 0, 0) | |
93 }; | |
166 | 94 return View("Defaulteditor", model); |
162 | 95 } |
117 | 96 |
162 | 97 [HttpPost] |
98 [Authorize] | |
99 public ActionResult Publicar(EventoPublicarModel model) | |
100 { | |
101 if (ModelState.IsValid) | |
102 { | |
103 var agenda = AgendaFactory.GetAgenda(); | |
104 | |
169
5c94b052d838
Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents:
167
diff
changeset
|
105 var r = agenda.Publicar(new Guid(model.Id), model.NroOrden, model.UrlWiki, model.DuracionReal); |
162 | 106 if (r.Succeful) |
107 { | |
108 this.AddNotification(string.Format("Evento publicado {0}", model.Titulo)); | |
109 return RedirectToAction("Index"); | |
110 } | |
111 ModelState.AddModelError("error", r.ToString()); | |
112 } | |
166 | 113 return View("Defaulteditor", model); |
117 | 114 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
115 |
118 | 116 [Authorize] |
117 public ActionResult Modificar(string id) | |
118 { | |
119 var agenda = AgendaFactory.GetAgenda(); | |
120 var evento = agenda.GetEvento(new Guid(id)); | |
121 | |
122 var model = new EventoEditModel | |
123 { | |
124 Id = id, | |
125 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
|
126 Ponente = evento.Ponente != null ? evento.Ponente.Id : Guid.Empty, |
118 | 127 Fecha = evento.Fecha, |
128 UrlInvitacion = evento.UrlInvitacion | |
129 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
130 return View("Defaulteditor", model); |
118 | 131 } |
132 | |
117 | 133 [HttpPost] |
134 [Authorize] | |
118 | 135 public ActionResult Modificar(EventoEditModel model) |
117 | 136 { |
137 if (ModelState.IsValid) | |
138 { | |
139 var agenda = AgendaFactory.GetAgenda(); | |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
140 |
117 | 141 var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion); |
142 if (r.Succeful) | |
143 { | |
167 | 144 this.AddNotification("evento modificado"); |
117 | 145 return RedirectToAction("Index"); |
146 } | |
147 ModelState.AddModelError("error", r.ToString()); | |
148 } | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
149 return View("Defaulteditor", model); |
117 | 150 } |
118 | 151 |
152 [Authorize] | |
153 public ActionResult Agendar(string id) | |
154 { | |
155 var agenda = AgendaFactory.GetAgenda(); | |
156 var evento = agenda.GetEvento(new Guid(id)); | |
157 | |
158 var model = new EventoAgendarModel | |
159 { | |
160 Id = id, | |
161 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
|
162 Ponente = evento.Ponente != null ? evento.Ponente.Id : Guid.Empty, |
118 | 163 Fecha = evento.Fecha, |
164 UrlInvitacion = evento.UrlInvitacion | |
165 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
166 return View("Defaulteditor", model); |
118 | 167 } |
168 | |
169 [HttpPost] | |
170 [Authorize] | |
171 public ActionResult Agendar(EventoAgendarModel model) | |
172 { | |
173 if (ModelState.IsValid) | |
174 { | |
175 var agenda = AgendaFactory.GetAgenda(); | |
176 | |
177 var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion); | |
178 if (r.Succeful) | |
179 { | |
180 this.AddNotification("evento agendado"); | |
181 return RedirectToAction("Index"); | |
182 } | |
183 ModelState.AddModelError("error", r.ToString()); | |
184 } | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
185 return View("Defaulteditor", model); |
118 | 186 } |
187 | |
188 [Authorize] | |
189 public ActionResult Proponer() | |
190 { | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
191 var model = new PropuestaNewModel(); |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
192 return View("Defaulteditor", model); |
118 | 193 } |
194 | |
195 [HttpPost] | |
196 [Authorize] | |
197 public ActionResult Proponer(PropuestaNewModel model) | |
198 { | |
199 if (ModelState.IsValid) | |
200 { | |
201 var agenda = AgendaFactory.GetAgenda(); | |
202 | |
141
a5ff4de4a1d3
EditorForModel en Nuevo Evento y Proponer
Nelo@Guinea.neluz.int
parents:
140
diff
changeset
|
203 var r = agenda.Proponer(model.Titulo, model.Ponente, model.UrlInvitacion, (TipoEvento)model.TipoEvento); |
118 | 204 if (r.Succeful) |
167 | 205 { |
206 this.AddNotification("Evento propuesto"); | |
118 | 207 return RedirectToAction("Index"); |
167 | 208 } |
118 | 209 ModelState.AddModelError("error", r.ToString()); |
210 } | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
211 return View("Defaulteditor", model); |
118 | 212 } |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
213 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
214 [Authorize] |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
215 public ActionResult Cancelar(string id) |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
216 { |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
217 var agenda = AgendaFactory.GetAgenda(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
218 agenda.Cancelar(new Guid(id)); |
118 | 219 |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
220 this.AddNotification("Evento cancelado"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
221 return RedirectToAction("Index"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
222 } |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
223 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
224 [Authorize] |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
225 public ActionResult Descartar(string id) |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
226 { |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
227 var agenda = AgendaFactory.GetAgenda(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
228 agenda.Descartar(new Guid(id)); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
229 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
230 this.AddNotification("Evento descartado"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
231 return RedirectToAction("Index"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
232 } |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
233 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
234 [Authorize] |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
235 public ActionResult ReAgendar(string id) |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
236 { |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
237 var agenda = AgendaFactory.GetAgenda(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
238 agenda.ReAgendar(new Guid(id)); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
239 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
240 this.AddNotification("Evento re-agendado"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
241 return RedirectToAction("Index"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
242 } |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
243 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
244 [Authorize] |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
245 public ActionResult ReProponer(string id) |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
246 { |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
247 var agenda = AgendaFactory.GetAgenda(); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
248 agenda.ReProponer(new Guid(id)); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
249 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
250 this.AddNotification("Evento re-propuesto"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
251 return RedirectToAction("Index"); |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
252 } |
117 | 253 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
254 } |