annotate Agendas/trunk/src/Agendas.Web/Controllers/PersonaController.cs @ 144:a2b14da4902f

Alta y modificación de ponentes (personas)
author Nelo@Guinea.neluz.int
date Mon, 01 Aug 2011 10:25:23 -0300
parents
children 23aaf98b8377
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 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
22 return View();
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
23 }
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 [HttpPost]
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
26 public ActionResult Nueva(PersonaNewModel model)
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 if (ModelState.IsValid)
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
29 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
30 var personas = AgendaFactory.GetPersonaService();
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
31 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
32 if (r.Succeful)
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 this.AddNotification("Los datos fueron guardados");
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
35 return RedirectToAction("Index");
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
36 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
37 else
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
38 this.AddError(r.Message);
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
39 }
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 return View(model);
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
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
44 public ActionResult Modificar(string id)
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 var personas = AgendaFactory.GetPersonaService();
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
47
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
48 var persona = personas.GetById(new Guid(id));
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
49 if (persona==null)
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
50 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
51 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
52 return RedirectToAction("Index");
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
53 }
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 var model = new PersonaEditModel
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
56 {Id = persona.Id.ToString(), Nombre = persona.Nombre, Twitter = persona.Twitter, EMail = persona.Mail};
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 return View(model);
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
59 }
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 [HttpPost]
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
62 public ActionResult Modificar(PersonaEditModel model)
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
63 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
64 if (ModelState.IsValid)
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
65 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
66 var personas = AgendaFactory.GetPersonaService();
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
67 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
68 if (r.Succeful)
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
69 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
70 this.AddNotification("Los datos fueron guardados");
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
71 return RedirectToAction("Index");
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
72 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
73 else
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
74 this.AddError(r.Message);
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
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
77 return View(model);
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents:
diff changeset
78 }
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 }