annotate Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs @ 266:dba5d41bc7bf

BUG: Guardar persona con twitter ya existente genera error.
author juanjose.montesdeocaarbos
date Tue, 25 Oct 2011 23:22:10 -0300
parents e6c041d8e1bf
children
rev   line source
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
1 using System;
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
2 using System.Collections.Generic;
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
3 using System.Linq;
112
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
4 using AltNetHispano.Agendas.Domain.Repositories;
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
5
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
6 namespace AltNetHispano.Agendas.Domain.Services
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
7 {
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
8 public class PersonaService
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
9 {
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
10 private readonly IPersonaRepository _personaRepository;
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
11 private readonly IEventoRepository _eventoRepository;
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
12
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
13 public PersonaService(IPersonaRepository personaRepository, IEventoRepository eventoRepository)
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
14 {
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
15 _personaRepository = personaRepository;
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
16 _eventoRepository = eventoRepository;
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
17 }
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
18
115
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
19 public bool CreateIfNotExist(IdentityProviderEnum identityProvider, string username, string nombre)
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
20 {
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
21 var cuenta = _personaRepository.GetCuenta(identityProvider, username);
143
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
22 if (cuenta == null)
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
23 {
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
24 Persona persona = null;
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
25 if (identityProvider == IdentityProviderEnum.Twitter)
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
26 persona = _personaRepository.GetByTwitter(username);
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
27
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
28 if(persona==null)
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
29 persona = IdentityContext.IsAuthenticated() ? IdentityContext.GetUsuario() : new Persona(nombre);
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
30
143
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
31 persona.AddCuenta(new Cuenta(identityProvider, username));
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
32
143
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
33 if (identityProvider == IdentityProviderEnum.Twitter)
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
34 persona.Twitter = username;
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
35
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
36 SetDefaultGroups(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
37
143
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
38 _personaRepository.Save(persona);
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
39 }
2dbb15f4510f Asociar Twitter a Persona existente
Nelo@Guinea.neluz.int
parents: 115
diff changeset
40 return true;
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
41 }
112
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
42
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
43 private static void SetDefaultGroups(Persona persona)
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
44 {
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
45 #if DEBUG
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
46 var administradores = new[] {"nelopauselli", "alabras", "jjmoa", "jrowies"};
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
47 #else
200
5346c0500594 Pasando a estructura de db fija, ya no se crea automáticamente.
nelopauselli
parents: 183
diff changeset
48 var administradores = new[] {"nelopauselli", "alabras", "jrowies", "jorgegamba"};
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
49 #endif
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
50 if (administradores.Contains(persona.Twitter))
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
51 {
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
52 persona.Roles.Add(Roles.Usuario);
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
53 persona.Roles.Add(Roles.Administrador);
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
54 }
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
55 }
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
56
112
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
57 public void AddCuenta(IdentityProviderEnum identityProvider, string username)
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
58 {
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
59 var persona = IdentityContext.GetUsuario();
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
60 persona.AddCuenta(new Cuenta(identityProvider, username));
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
61
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
62 if (identityProvider == IdentityProviderEnum.Twitter)
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
63 persona.Twitter = username;
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
64 }
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
65
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
66 public void RemoveCuenta(IdentityProviderEnum identityProvider, string username)
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
67 {
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
68 var persona = IdentityContext.GetUsuario();
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
69 var cuenta = persona.Cuentas.FirstOrDefault(c => c.IdentityProvider == identityProvider && c.LogonName == username);
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
70 if (cuenta != null)
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
71 persona.RemoveCuenta(cuenta);
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 96
diff changeset
72 }
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
73
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
74 public IEnumerable<Persona> GetAll()
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
75 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
76 return _personaRepository.GetAll();
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
77 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
78
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
79 public Persona GetById(Guid id)
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
80 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
81 return _personaRepository.Get(id);
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
82 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
83
219
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
84 public ResultadoAdd Add(string nombre, string twitter, string mail, string blog, IEnumerable<string> roles)
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
85 {
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 219
diff changeset
86 if (twitter.StartsWith("@"))
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 219
diff changeset
87 return new ResultadoAdd("No debe ingresar el arroba al escribir la cuenta de twitter.");
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 219
diff changeset
88
219
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
89 var persona = _personaRepository.GetByNombre(nombre);
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
90 if (persona!=null)
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
91 return new ResultadoAdd("Ya existe una persona con el nombre " + nombre);
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
92
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
93 persona = _personaRepository.GetByTwitter(twitter);
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
94 if (persona != null)
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
95 return new ResultadoAdd("Ya existe una persona con el twitter " + twitter);
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
96
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
97 persona = new Persona(nombre) {Twitter = twitter, Mail = mail, Blog = blog};
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
98
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
99 if (!string.IsNullOrWhiteSpace(twitter))
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
100 persona.AddCuenta(new Cuenta(IdentityProviderEnum.Twitter, twitter));
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
101
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
102 SetDefaultGroups(persona);
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
103
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
104 if (roles != null)
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
105 {
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
106 persona.Roles.Clear();
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
107 foreach (var rol in roles)
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
108 {
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
109 persona.Roles.Add(rol);
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
110 }
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
111 }
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
112
178
33e57fd1a6c9 Roles: en dominio y autoregistración
nelopauselli
parents: 157
diff changeset
113 _personaRepository.Save(persona);
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
114
219
b9850b647a4e Agregando alta de ponente durante la carga del evento
nelopauselli
parents: 209
diff changeset
115 return new ResultadoAdd(true, "Persona Agregada", persona.Id, persona.Nombre);
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
116 }
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
117
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
118 public Resultado Update(Guid id, string nombre, string twitter, string mail, string blog, IEnumerable<string> roles)
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
119 {
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
120 var persona = _personaRepository.Get(id);
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
121 if (persona == null)
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 180
diff changeset
122 return new Resultado(false, string.Format("No se pudo encontrar la persona cuyo Id sea {0}", id));
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
123
259
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 219
diff changeset
124 if (twitter.StartsWith("@"))
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 219
diff changeset
125 return new ResultadoAdd("No debe ingresar el arroba al escribir la cuenta de twitter.");
e6c041d8e1bf Ticket #193.1: Al guardar (nuevo/modificar) una persona, que la cuenta de twitter no comience con @
juanjose.montesdeocaarbos
parents: 219
diff changeset
126
266
dba5d41bc7bf BUG: Guardar persona con twitter ya existente genera error.
juanjose.montesdeocaarbos
parents: 259
diff changeset
127 persona = _personaRepository.GetByTwitter(twitter);
dba5d41bc7bf BUG: Guardar persona con twitter ya existente genera error.
juanjose.montesdeocaarbos
parents: 259
diff changeset
128 if (persona != null && !persona.Id.Equals(id))
dba5d41bc7bf BUG: Guardar persona con twitter ya existente genera error.
juanjose.montesdeocaarbos
parents: 259
diff changeset
129 return new Resultado(false, string.Format("Ya existe una persona con el twitter {0}", twitter));
dba5d41bc7bf BUG: Guardar persona con twitter ya existente genera error.
juanjose.montesdeocaarbos
parents: 259
diff changeset
130
dba5d41bc7bf BUG: Guardar persona con twitter ya existente genera error.
juanjose.montesdeocaarbos
parents: 259
diff changeset
131 persona.Nombre = nombre;
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
132 persona.Twitter = twitter;
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
133 persona.Mail = mail;
157
f17252543cbf Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents: 147
diff changeset
134 persona.Blog = blog;
f17252543cbf Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents: 147
diff changeset
135
f17252543cbf Agregando la url del blog a los datos de la persona
Nelo@Guinea.neluz.int
parents: 147
diff changeset
136 //TODO: ¿que hacemos con la cuenta de twitter asociada?
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
137
180
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
138 if (roles!=null)
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
139 {
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
140 persona.Roles.Clear();
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
141 foreach (var rol in roles)
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
142 {
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
143 persona.Roles.Add(rol);
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
144 }
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
145 }
222362c29416 UI para asignación de roles
nelopauselli
parents: 178
diff changeset
146
183
212c664db5aa Generalización del manejo de las acciones sobre eventos
nelopauselli
parents: 180
diff changeset
147 return new Resultado(true, "Datos actualizados");
144
a2b14da4902f Alta y modificación de ponentes (personas)
Nelo@Guinea.neluz.int
parents: 143
diff changeset
148 }
209
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
149
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
150 public Resultado Delete(Guid id)
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
151 {
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
152 var persona = _personaRepository.Get(id);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
153 if (persona == null)
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
154 return new Resultado(false, string.Format("No se pudo encontrar la persona cuyo Id sea {0}", id));
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
155
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
156 var existeEnEvento = _eventoRepository.ExistePonente(persona);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
157 if (existeEnEvento)
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
158 return new Resultado(false,
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
159 string.Format(
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
160 "La persona {0} está asociada a un Evento por lo que es imposible eliminarla.",
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
161 persona.Nombre));
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
162
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
163 _personaRepository.Delete(persona);
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
164 return new Resultado(true, "");
a36a76bd6ec3 Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
alabra
parents: 200
diff changeset
165 }
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
166 }
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
diff changeset
167 }