Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Web/Controllers/PersonaController.cs @ 155:23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
author | Nelo@Guinea.neluz.int |
---|---|
date | Wed, 03 Aug 2011 09:38:23 -0300 |
parents | a2b14da4902f |
children | f17252543cbf |
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; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
4 using AltNetHispano.Agendas.Factories; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
5 using AltNetHispano.Agendas.Web.Models; |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
6 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
7 namespace AltNetHispano.Agendas.Web.Controllers |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
8 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
9 public class PersonaController : Controller |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
10 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
11 public ActionResult Index() |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
12 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
13 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
14 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
15 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
|
16 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
17 return View(model); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
18 } |
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 public ActionResult Nueva() |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
21 { |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
22 var model = new PersonaNewModel(); |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
23 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
24 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
25 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
26 [HttpPost] |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
27 public ActionResult Nueva(PersonaNewModel model) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
28 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
29 if (ModelState.IsValid) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
30 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
31 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
32 var r = personas.Add(model.Nombre, model.Twitter, model.EMail); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
33 if (r.Succeful) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
34 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
35 this.AddNotification("Los datos fueron guardados"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
36 return RedirectToAction("Index"); |
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 else |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
39 this.AddError(r.Message); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
40 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
41 |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
42 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
43 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
44 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
45 public ActionResult Modificar(string id) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
46 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
47 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
48 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
49 var persona = personas.GetById(new Guid(id)); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
50 if (persona==null) |
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 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
|
53 return RedirectToAction("Index"); |
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 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
56 var model = new PersonaEditModel |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
57 {Id = persona.Id.ToString(), Nombre = persona.Nombre, Twitter = persona.Twitter, EMail = persona.Mail}; |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
58 |
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
59 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
60 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
61 |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
62 [HttpPost] |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
63 public ActionResult Modificar(PersonaEditModel model) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
64 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
65 if (ModelState.IsValid) |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
66 { |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
67 var personas = AgendaFactory.GetPersonaService(); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
68 var r = personas.Update(new Guid(model.Id), model.Nombre, model.Twitter, model.EMail); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
69 if (r.Succeful) |
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 this.AddNotification("Los datos fueron guardados"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
72 return RedirectToAction("Index"); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
73 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
74 else |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
75 this.AddError(r.Message); |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
76 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
77 |
155
23aaf98b8377
Generalizando editores en EditorDefault basando los textos en recursos
Nelo@Guinea.neluz.int
parents:
144
diff
changeset
|
78 return View("Defaulteditor", model); |
144
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
79 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
80 } |
a2b14da4902f
Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff
changeset
|
81 } |