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 }