Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 166:fae2feae499e
Usando DefaultEditor para Publicar
EditorTemplate para TimeSpan
author | nelopauselli |
---|---|
date | Fri, 05 Aug 2011 22:56:43 -0300 |
parents | 557c386fcecc |
children | ea85bd893247 |
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 { | |
58 this.AddNotification("Datos guardados"); | |
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(); | |
70 agenda.Confirmar(new Guid(id)); | |
71 | |
72 this.AddNotification("Evento confirmado"); | |
73 return RedirectToAction("Index"); | |
74 } | |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
75 |
117 | 76 [Authorize] |
118 | 77 public ActionResult Publicar(string id) |
117 | 78 { |
79 var agenda = AgendaFactory.GetAgenda(); | |
162 | 80 var evento = agenda.GetEvento(new Guid(id)); |
81 | |
82 var model = new EventoPublicarModel | |
83 { | |
84 Id = id, | |
85 Titulo = evento.Titulo, | |
86 NroOrden = 0, //TODO: Obtener el último y sumarle uno. | |
87 UrlWiki = evento.UrlWiki, | |
88 DuracionReal = new TimeSpan(0, 0, 0) | |
89 }; | |
166 | 90 return View("Defaulteditor", model); |
162 | 91 } |
117 | 92 |
162 | 93 [HttpPost] |
94 [Authorize] | |
95 public ActionResult Publicar(EventoPublicarModel model) | |
96 { | |
97 if (ModelState.IsValid) | |
98 { | |
99 var agenda = AgendaFactory.GetAgenda(); | |
100 | |
101 var r = agenda.Publicar(new Guid(model.Id), model.NroOrden, model.UrlWiki); | |
102 if (r.Succeful) | |
103 { | |
104 this.AddNotification(string.Format("Evento publicado {0}", model.Titulo)); | |
105 return RedirectToAction("Index"); | |
106 } | |
107 ModelState.AddModelError("error", r.ToString()); | |
108 } | |
166 | 109 return View("Defaulteditor", model); |
117 | 110 } |
116
53bcd338542b
acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
111 |
118 | 112 [Authorize] |
113 public ActionResult Modificar(string id) | |
114 { | |
115 var agenda = AgendaFactory.GetAgenda(); | |
116 var evento = agenda.GetEvento(new Guid(id)); | |
117 | |
118 var model = new EventoEditModel | |
119 { | |
120 Id = id, | |
121 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
|
122 Ponente = evento.Ponente != null ? evento.Ponente.Id : Guid.Empty, |
118 | 123 Fecha = evento.Fecha, |
124 UrlInvitacion = evento.UrlInvitacion | |
125 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
126 return View("Defaulteditor", model); |
118 | 127 } |
128 | |
117 | 129 [HttpPost] |
130 [Authorize] | |
118 | 131 public ActionResult Modificar(EventoEditModel model) |
117 | 132 { |
133 if (ModelState.IsValid) | |
134 { | |
135 var agenda = AgendaFactory.GetAgenda(); | |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
136 |
117 | 137 var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion); |
138 if (r.Succeful) | |
139 { | |
140 this.AddNotification("datos guardados"); | |
141 return RedirectToAction("Index"); | |
142 } | |
143 ModelState.AddModelError("error", r.ToString()); | |
144 } | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
145 return View("Defaulteditor", model); |
117 | 146 } |
118 | 147 |
148 [Authorize] | |
149 public ActionResult Agendar(string id) | |
150 { | |
151 var agenda = AgendaFactory.GetAgenda(); | |
152 var evento = agenda.GetEvento(new Guid(id)); | |
153 | |
154 var model = new EventoAgendarModel | |
155 { | |
156 Id = id, | |
157 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
|
158 Ponente = evento.Ponente != null ? evento.Ponente.Id : Guid.Empty, |
118 | 159 Fecha = evento.Fecha, |
160 UrlInvitacion = evento.UrlInvitacion | |
161 }; | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
162 return View("Defaulteditor", model); |
118 | 163 } |
164 | |
165 [HttpPost] | |
166 [Authorize] | |
167 public ActionResult Agendar(EventoAgendarModel model) | |
168 { | |
169 if (ModelState.IsValid) | |
170 { | |
171 var agenda = AgendaFactory.GetAgenda(); | |
172 | |
173 var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion); | |
174 if (r.Succeful) | |
175 { | |
176 this.AddNotification("evento agendado"); | |
177 return RedirectToAction("Index"); | |
178 } | |
179 ModelState.AddModelError("error", r.ToString()); | |
180 } | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
181 return View("Defaulteditor", model); |
118 | 182 } |
183 | |
184 [Authorize] | |
185 public ActionResult Proponer() | |
186 { | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
187 var model = new PropuestaNewModel(); |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
188 return View("Defaulteditor", model); |
118 | 189 } |
190 | |
191 [HttpPost] | |
192 [Authorize] | |
193 public ActionResult Proponer(PropuestaNewModel model) | |
194 { | |
195 if (ModelState.IsValid) | |
196 { | |
197 var agenda = AgendaFactory.GetAgenda(); | |
198 | |
141
a5ff4de4a1d3
EditorForModel en Nuevo Evento y Proponer
Nelo@Guinea.neluz.int
parents:
140
diff
changeset
|
199 var r = agenda.Proponer(model.Titulo, model.Ponente, model.UrlInvitacion, (TipoEvento)model.TipoEvento); |
118 | 200 if (r.Succeful) |
201 return RedirectToAction("Index"); | |
202 ModelState.AddModelError("error", r.ToString()); | |
203 } | |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
145
diff
changeset
|
204 return View("Defaulteditor", model); |
118 | 205 } |
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
|
206 |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
207 [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
|
208 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
|
209 { |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
118
diff
changeset
|
210 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
|
211 agenda.Cancelar(new Guid(id)); |
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 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
|
214 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
|
215 } |
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 [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
|
218 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
|
219 { |
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 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
|
221 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
|
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 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
|
224 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
|
225 } |
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 [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
|
228 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
|
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 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
|
231 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
|
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 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
|
234 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
|
235 } |
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 [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
|
238 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
|
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 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
|
241 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
|
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 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
|
244 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
|
245 } |
117 | 246 } |
25
e8d2be47a6b0
Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff
changeset
|
247 } |