# HG changeset patch # User Nelo@Guinea.neluz.int # Date 1312205123 10800 # Node ID a2b14da4902f36348d0b2fb6c3f752e2f7ce0efe # Parent 2dbb15f4510fe22ca802fc0573e6d78e63e3f5bb Alta y modificación de ponentes (personas) diff -r 2dbb15f4510f -r a2b14da4902f Agendas/trunk/src/Agendas.Domain/Persona.cs --- a/Agendas/trunk/src/Agendas.Domain/Persona.cs Mon Aug 01 09:41:29 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Persona.cs Mon Aug 01 10:25:23 2011 -0300 @@ -25,9 +25,9 @@ _cuentas = new List(); } - public virtual string Nombre { get; private set; } + public virtual string Nombre { get; set; } - public virtual string Mail { get; private set; } + public virtual string Mail { get; set; } public virtual string Twitter { get; set; } diff -r 2dbb15f4510f -r a2b14da4902f Agendas/trunk/src/Agendas.Domain/Repositories/IPersonaRepository.cs --- a/Agendas/trunk/src/Agendas.Domain/Repositories/IPersonaRepository.cs Mon Aug 01 09:41:29 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Repositories/IPersonaRepository.cs Mon Aug 01 10:25:23 2011 -0300 @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace AltNetHispano.Agendas.Domain.Repositories { @@ -9,5 +10,6 @@ void Save(Persona persona); Cuenta GetCuenta(IdentityProviderEnum identityProvider, string username); Persona GetByTwitter(string username); + Persona Get(Guid id); } } \ No newline at end of file diff -r 2dbb15f4510f -r a2b14da4902f Agendas/trunk/src/Agendas.Domain/Resultado.cs --- a/Agendas/trunk/src/Agendas.Domain/Resultado.cs Mon Aug 01 09:41:29 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Resultado.cs Mon Aug 01 10:25:23 2011 -0300 @@ -8,5 +8,6 @@ } public bool Succeful { get; private set; } - } + public string Message { get; internal set; } + } } \ No newline at end of file diff -r 2dbb15f4510f -r a2b14da4902f Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs --- a/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Mon Aug 01 09:41:29 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs Mon Aug 01 10:25:23 2011 -0300 @@ -1,4 +1,6 @@ -using System.Linq; +using System; +using System.Collections.Generic; +using System.Linq; using AltNetHispano.Agendas.Domain.Repositories; namespace AltNetHispano.Agendas.Domain.Services @@ -56,5 +58,37 @@ if (cuenta != null) persona.RemoveCuenta(cuenta); } + + public IEnumerable GetAll() + { + return _personaRepository.GetAll(); + } + + public Persona GetById(Guid id) + { + return _personaRepository.Get(id); + } + + public Resultado Add(string nombre, string twitter, string mail) + { + var persona = new Persona(nombre) {Twitter = twitter, Mail = mail}; + _personaRepository.Save(persona); + + return new Resultado(true); + } + + public Resultado Update(Guid id, string nombre, string twitter, string mail) + { + var persona = _personaRepository.Get(id); + if (persona == null) + return new Resultado(false) + {Message = string.Format("No se pudo encontrar la persona cuyo Id sea {0}", id)}; + + persona.Nombre = nombre; + persona.Twitter = twitter; + persona.Mail = mail; + + return new Resultado(true); + } } } \ No newline at end of file diff -r 2dbb15f4510f -r a2b14da4902f Agendas/trunk/src/Agendas.Repositories.NHibernate/RepositoryBase.cs --- a/Agendas/trunk/src/Agendas.Repositories.NHibernate/RepositoryBase.cs Mon Aug 01 09:41:29 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Repositories.NHibernate/RepositoryBase.cs Mon Aug 01 10:25:23 2011 -0300 @@ -1,8 +1,10 @@ -using NHibernate; +using System; +using AltNetHispano.Agendas.Domain; +using NHibernate; namespace AltNetHispano.Agendas.Repositories.NHibernate { - public class RepositoryBase + public class RepositoryBase where T : Identificable { private readonly ISessionFactory _sessionFactory; @@ -17,5 +19,11 @@ { Session.Save(obj); } + + public T Get(Guid id) + { + return Session.QueryOver().Where(i => i.Id == id).SingleOrDefault(); + } + } } \ No newline at end of file diff -r 2dbb15f4510f -r a2b14da4902f Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj --- a/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Mon Aug 01 09:41:29 2011 -0300 +++ b/Agendas/trunk/src/Agendas.Web/Agendas.Web.csproj Mon Aug 01 10:25:23 2011 -0300 @@ -67,6 +67,7 @@ + Global.asax @@ -80,6 +81,7 @@ + @@ -204,6 +206,15 @@ + + + + + + + + +