annotate Agendas/trunk/src/Agendas.Web/Controllers/EventoController.cs @ 116:53bcd338542b

acciones de confirmar y publicar desde la UI
author Nelo@Kenia.neluz.int
date Sun, 19 Jun 2011 13:00:02 -0300
parents 80c22175c9b5
children 7ef7e4bb71f6
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 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
10 public class EventoController : Controller
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
11 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
12 public ActionResult Index()
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
13 {
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
14 var agenda = AgendaFactory.GetAgenda();
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
15
116
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
16 var model = new EventoIndexModel
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
17 {
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
18 ProximosEventos = from e in agenda.GetEventosAgendados()
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
19 orderby e.Fecha
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
20 select new EventoDto
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
21 {
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
22 Id = e.Id.ToString(),
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
23 Titulo = e.Titulo,
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
24 Fecha = e.Fecha.Value,
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
25 PuedeModificar = e.GetEstado().PuedePromover(Accion.Modificar),
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
26 PuedeConfirmar = e.GetEstado().PuedePromover(Accion.Confirmar),
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
27 PuedePublicar = e.GetEstado().PuedePromover(Accion.Publicar)
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
28 }
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
29 };
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
30
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
31 return View(model);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
32 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
33
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
34 [Authorize]
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
35 public ActionResult New()
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
36 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
37 return View(new EventoNewModel());
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
38 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
39
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
40 [HttpPost]
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
41 [Authorize]
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
42 public ActionResult New(EventoNewModel model)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
43 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
44 if (ModelState.IsValid)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
45 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
46 var agenda = AgendaFactory.GetAgenda();
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
47
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
48 var r = agenda.Agendar(model.Titulo, model.Ponente, model.Fecha,
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
49 model.UrlInvitacion, (TipoEvento)model.Tipo);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
50 if (r.Succeful)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
51 return RedirectToAction("Index");
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
52 ModelState.AddModelError("error", r.ToString());
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
53 }
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
54 return View(model);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
55 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
56
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
57 [Authorize]
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
58 public ActionResult Edit(string id)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
59 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
60 var agenda = AgendaFactory.GetAgenda();
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
61 var evento = agenda.GetEvento(new Guid(id));
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
62
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
63 var model = new EventoEditModel
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
64 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
65 Id = id,
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
66 Titulo = evento.Titulo,
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
67 Ponente = evento.Ponente != null ? evento.Ponente.Nombre : string.Empty,
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
68 Fecha = evento.Fecha,
89
24e9488ac152 mapeo de property UrlInvitacion entre viewmodel y entity
jorge.rowies
parents: 82
diff changeset
69 UrlInvitacion = evento.UrlInvitacion
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
70 };
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
71 return View(model);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
72 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
73
116
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
74 [Authorize]
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
75 public ActionResult Confirm(string id)
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
76 {
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
77 var agenda = AgendaFactory.GetAgenda();
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
78 agenda.Confirmar(new Guid(id));
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
79 return RedirectToAction("Index");
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
80 }
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
81
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
82 [Authorize]
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
83 public ActionResult Publish(string id)
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
84 {
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
85 var agenda = AgendaFactory.GetAgenda();
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
86 agenda.Publicar(new Guid(id), 0, string.Empty);
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
87 return RedirectToAction("Index");
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
88 }
53bcd338542b acciones de confirmar y publicar desde la UI
Nelo@Kenia.neluz.int
parents: 106
diff changeset
89
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
90 [HttpPost]
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
91 [Authorize]
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
92 public ActionResult Edit(EventoEditModel model)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
93 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
94 if (ModelState.IsValid)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
95 {
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
96 var agenda = AgendaFactory.GetAgenda();
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
97
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
98 var r = agenda.ModificarEvento(new Guid(model.Id), model.Titulo, model.Ponente, model.Fecha.Value, model.UrlInvitacion);
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
99 if (r.Succeful)
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
100 return RedirectToAction("Index");
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
101 ModelState.AddModelError("error", r.ToString());
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
102 }
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
103 return View(model);
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
104 }
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 97
diff changeset
105 }
25
e8d2be47a6b0 Cambios de nombre en Portal.Web (Agenda x Evento)
nelo@MTEySS.neluz.int
parents:
diff changeset
106 }