view Agendas/trunk/src/Agendas.Domain/IdentityContext.cs @ 120:c3573defd18f

Agregado de Fecha, Usuario y Successful en TrackLog Modificacion de publicador de blog para usar TrackLog Agregado de TrackLog en el test de crud de eventos Fix en publicador de twitter para que no twitee si ya se encuentra en TrackLog pero con Successful en true
author Jorge@Jorge-PC
date Fri, 24 Jun 2011 21:18:21 -0300
parents 0bca45e1e664
children 7a2eeb9e9bf9
line wrap: on
line source

using System;
using AltNetHispano.Agendas.Domain.Exceptions;
using AltNetHispano.Agendas.Domain.Repositories;

namespace AltNetHispano.Agendas.Domain
{
	public class IdentityContext
	{
		private static ISeguridad _current;
		private static IPersonaRepository _personaRepository;

		public static void Init(ISeguridad seguridad, IPersonaRepository personaRepository)
		{
			_current = seguridad;
			_personaRepository = personaRepository;
		}

		private static ISeguridad Current
		{
			get
			{
				if (_current == null)
					throw new IdentityContextNotConfiguredException();
				return _current;
			}
		}

		public static string GetUserName()
		{
			string username = Current.GetUserName();
			if (string.IsNullOrWhiteSpace(username))
				throw new UsuarioNoAutenticadoException();
			return username;
		}

		public static Persona GetUsuario()
		{
			var identification = new Identification(GetUserName());

			var cuenta = _personaRepository.GetCuenta(identification.IdentityProvider, identification.LogonName);
			return cuenta != null ? cuenta.Persona : null;
		}
	}
}