Mercurial > altnet-hispano
diff Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs @ 209:a36a76bd6ec3
Se soluciona ticket 173. Se agrega eliminación de personas siempre y cuando no esté asociada a ninguna van.
author | alabra |
---|---|
date | Wed, 24 Aug 2011 19:27:30 -0300 |
parents | 5346c0500594 |
children | b9850b647a4e |
line wrap: on
line diff
--- a/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Wed Aug 24 11:30:06 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Wed Aug 24 19:27:30 2011 -0300 @@ -8,10 +8,12 @@ public class PersonaService { private readonly IPersonaRepository _personaRepository; + private readonly IEventoRepository _eventoRepository; - public PersonaService(IPersonaRepository personaRepository) + public PersonaService(IPersonaRepository personaRepository, IEventoRepository eventoRepository) { _personaRepository = personaRepository; + _eventoRepository = eventoRepository; } public bool CreateIfNotExist(IdentityProviderEnum identityProvider, string username, string nombre) @@ -126,5 +128,22 @@ return new Resultado(true, "Datos actualizados"); } + + public Resultado Delete(Guid id) + { + var persona = _personaRepository.Get(id); + if (persona == null) + return new Resultado(false, string.Format("No se pudo encontrar la persona cuyo Id sea {0}", id)); + + var existeEnEvento = _eventoRepository.ExistePonente(persona); + if (existeEnEvento) + return new Resultado(false, + string.Format( + "La persona {0} está asociada a un Evento por lo que es imposible eliminarla.", + persona.Nombre)); + + _personaRepository.Delete(persona); + return new Resultado(true, ""); + } } } \ No newline at end of file