Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/PersonaController.cs @ 289:8b0c62c255cd
Se modifica DataAnnotationAndConventionModelMetadataProvider.cs para que lea Recursos en base al Assembly Fullname
author | juanjose.montesdeocaarbos |
---|---|
date | Tue, 07 Feb 2012 23:28:20 -0300 |
parents | 730b80afa70d |
children |
rev | line source |
---|---|
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
1 using System; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
2 using System.Linq; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
3 using System.Web.Mvc; |
179 | 4 using AltNetHispano.Agendas.Domain; |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
5 using AltNetHispano.Agendas.Factories; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
6 using AltNetHispano.Agendas.Web.Models; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
7 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
8 namespace AltNetHispano.Agendas.Web.Controllers |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
9 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
10 public class PersonaController : Controller |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
11 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
12 public ActionResult Index() |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
13 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
14 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
15 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
16 var model = new PersonaIndexModel {Items = from p in personas.GetAll() select new PersonaDto{Id=p.Id, Nombre = p.Nombre}}; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
17 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
18 return View(model); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
19 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
20 |
179 | 21 [CustomAuthorize(Roles = Roles.Administrador)] |
22 public ActionResult Nueva() | |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
23 { |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
24 var model = new PersonaNewModel(); |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
25 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
26 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
27 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
28 [HttpPost] |
179 | 29 [CustomAuthorize(Roles = Roles.Administrador)] |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
30 public ActionResult Nueva(PersonaNewModel model) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
31 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
32 if (ModelState.IsValid) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
33 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
34 var personas = AgendaFactory.GetPersonaService(); |
180 | 35 var r = personas.Add(model.Nombre, model.Twitter, model.EMail,model.Blog, model.Roles); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
36 if (r.Succeful) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
37 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
38 this.AddNotification("Los datos fueron guardados"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
39 return RedirectToAction("Index"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
40 } |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
41 this.AddError(r.Message); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
42 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
43 |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
44 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
45 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
46 |
179 | 47 [CustomAuthorize(Roles = Roles.Administrador)] |
48 public ActionResult Modificar(string id) | |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
49 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
50 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
51 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
52 var persona = personas.GetById(new Guid(id)); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
53 if (persona==null) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
54 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
55 this.AddError("No se encontró la persona que intenta modificar"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
56 return RedirectToAction("Index"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
57 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
58 |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
59 var model = new PersonaEditModel |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
60 { |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
61 Id = persona.Id.ToString(), |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
62 Nombre = persona.Nombre, |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
63 Twitter = persona.Twitter, |
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
64 EMail = persona.Mail, |
180 | 65 Blog = persona.Blog, |
66 Roles = persona.Roles.ToArray() | |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
67 }; |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
68 |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
69 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
70 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
71 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
72 [HttpPost] |
179 | 73 [CustomAuthorize(Roles = Roles.Administrador)] |
74 public ActionResult Modificar(PersonaEditModel model) | |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
75 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
76 if (ModelState.IsValid) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
77 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
78 var personas = AgendaFactory.GetPersonaService(); |
180 | 79 var r = personas.Update(new Guid(model.Id), model.Nombre, model.Twitter, model.EMail, model.Blog, model.Roles); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
80 if (r.Succeful) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
81 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
82 this.AddNotification("Los datos fueron guardados"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
83 return RedirectToAction("Index"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
84 } |
157
f17252543cbf
Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents:
155
diff
changeset
|
85 this.AddError(r.Message); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
86 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
87 |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
88 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
89 } |
209
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
90 |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
91 [CustomAuthorize(Roles = Roles.Administrador)] |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
92 public ActionResult Quitar(string id) |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
93 { |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
94 var personas = AgendaFactory.GetPersonaService(); |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
95 var result = personas.Delete(new Guid(id)); |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
96 if (result.Succeful) |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
97 { |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
98 this.AddNotification("Se ha eliminado correctamente a la persona"); |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
99 |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
100 } |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
101 this.AddError(result.Message); |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
102 |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
103 return RedirectToAction("Index"); |
a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents:
180
diff
changeset
|
104 } |
257 | 105 |
106 public ActionResult Ver(string id) | |
107 { | |
108 var personas = AgendaFactory.GetPersonaService(); | |
109 | |
110 var persona = personas.GetById(new Guid(id)); | |
111 if (persona == null) | |
112 { | |
113 this.AddError("No se encontró la persona que intenta visualizar"); | |
114 return RedirectToAction("Index"); | |
115 } | |
116 | |
117 var model = new PersonaViewModel | |
118 { | |
119 Id = persona.Id.ToString(), | |
120 Nombre = persona.Nombre, | |
121 Twitter = persona.Twitter, | |
122 EMail = persona.Mail, | |
123 Blog = persona.Blog | |
124 }; | |
125 | |
126 return View("DefaultViewer", model); | |
127 } | |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
128 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
129 } |