Mercurial > altnet-hispano
view Agendas/trunk/src/Agendas.Domain/Services/PersonaService.cs @ 112:0bca45e1e664
Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
author | Nelo@Kenia.neluz.int |
---|---|
date | Sat, 11 Jun 2011 01:20:59 -0300 |
parents | 1eb5a0e531bf |
children | 7a2eeb9e9bf9 |
line wrap: on
line source
using System; using System.Linq; using AltNetHispano.Agendas.Domain.Repositories; namespace AltNetHispano.Agendas.Domain.Services { public class PersonaService { private readonly IPersonaRepository _personaRepository; public PersonaService(IPersonaRepository personaRepository) { _personaRepository = personaRepository; } public bool Validate(IdentityProviderEnum identityProvider, string username) { var cuenta = _personaRepository.GetCuenta(identityProvider, username); return cuenta != null; } public bool Validate(IdentityProviderEnum identityProvider, string username, string nombre) { var cuenta = _personaRepository.GetCuenta(identityProvider, username); if (cuenta==null) { var persona=new Persona(nombre); persona.AddCuenta(new Cuenta(identityProvider, username)); if (identityProvider == IdentityProviderEnum.Twitter) persona.Twitter = username; _personaRepository.Save(persona); } return true; } public void AddCuenta(IdentityProviderEnum identityProvider, string username) { var persona = IdentityContext.GetUsuario(); persona.AddCuenta(new Cuenta(identityProvider, username)); if (identityProvider == IdentityProviderEnum.Twitter) persona.Twitter = username; } public void RemoveCuenta(IdentityProviderEnum identityProvider, string username) { var persona = IdentityContext.GetUsuario(); var cuenta = persona.Cuentas.FirstOrDefault(c => c.IdentityProvider == identityProvider && c.LogonName == username); if (cuenta != null) persona.RemoveCuenta(cuenta); } } }