26
|
1 using System;
|
|
2 using System.Linq;
|
|
3 using System.Web.Mvc;
|
|
4 using Agendas.Factories;
|
|
5 using Agendas.Web.Models;
|
|
6 using AltNetHispano.Agendas.Domain.Exceptions;
|
|
7
|
|
8 namespace Agendas.Web.Controllers
|
|
9 {
|
|
10 public class PropuestaController : Controller
|
|
11 {
|
|
12 public ActionResult Index()
|
|
13 {
|
|
14 var model = GetIndexModel();
|
|
15 return View(model);
|
|
16 }
|
|
17
|
|
18 private static PropuestaIndexModel GetIndexModel()
|
|
19 {
|
|
20 var agenda = AgendaFactory.GetAgenda();
|
|
21
|
|
22 return new PropuestaIndexModel
|
|
23 {
|
|
24 Propuestas = from e in agenda.GetEventosPropuestos()
|
|
25 select new PropuestaDto {Id = e.Id.ToString(), Titulo = e.Titulo, Ponente = e.Ponente.Nombre}
|
|
26 };
|
|
27 }
|
|
28
|
|
29 [Authorize]
|
|
30 public ActionResult New()
|
|
31 {
|
|
32 return View();
|
|
33 }
|
|
34
|
|
35 [HttpPost]
|
|
36 [Authorize]
|
|
37 public ActionResult New(PropuestaNewModel model)
|
|
38 {
|
|
39 if (ModelState.IsValid)
|
|
40 {
|
|
41 var agenda = AgendaFactory.GetAgenda();
|
|
42
|
|
43 try
|
|
44 {
|
|
45 agenda.Proponer(model.Titulo, model.Ponente);
|
|
46
|
|
47 return View("Index", GetIndexModel());
|
|
48 }
|
|
49 catch (ValidationException ex)
|
|
50 {
|
|
51 ModelState.AddModelError("error", ex.ToString());
|
|
52 }
|
|
53 }
|
|
54 return View(model);
|
|
55 }
|
|
56
|
|
57 [Authorize]
|
|
58 public ActionResult Edit(string id)
|
|
59 {
|
|
60 var agenda = AgendaFactory.GetAgenda();
|
|
61 var propuesta = agenda.GetEvento(new Guid(id));
|
|
62 if (propuesta != null)
|
|
63 {
|
|
64 var model = new PropuestaEditModel
|
|
65 {
|
|
66 Id = id,
|
|
67 Titulo = propuesta.Titulo,
|
|
68 Ponente = propuesta.Ponente != null ? propuesta.Ponente.Nombre : string.Empty
|
|
69 };
|
|
70 return View(model);
|
|
71 }
|
|
72 ModelState.AddModelError("error", "No se encontró el Propuesta que quiere modificar");
|
|
73 return View();
|
|
74 }
|
|
75
|
|
76 [HttpPost]
|
|
77 [Authorize]
|
|
78 public ActionResult Edit(PropuestaEditModel model)
|
|
79 {
|
|
80 if (ModelState.IsValid)
|
|
81 {
|
|
82 var agenda = AgendaFactory.GetAgenda();
|
|
83
|
|
84 try
|
|
85 {
|
|
86 agenda.ModificarPropuesta(new Guid(model.Id), model.Titulo, model.Ponente);
|
|
87
|
|
88 return View("Index", GetIndexModel());
|
|
89 }
|
|
90 catch (ValidationException ex)
|
|
91 {
|
|
92 ModelState.AddModelError("error", ex.ToString());
|
|
93 }
|
|
94 }
|
|
95 return View(model);
|
|
96 }
|
|
97 }
|
|
98 } |