view Agendas/trunk/src/Agendas.Domain/Persona.cs @ 130:0ea32a748453

Se termina el publicador via el calendario de google, además se realizan las pruebas unitarias.
author alabra
date Sun, 10 Jul 2011 18:50:11 -0400
parents 83d76f6e0a3c
children 62dc9fb3a03e
line wrap: on
line source

using System.Collections.Generic;

namespace AltNetHispano.Agendas.Domain
{
	public class Persona : Identificable
	{
		private readonly IList<Cuenta> _cuentas;

		protected Persona()
		{
			//ctor para NHibernate
		}

		public Persona(string nombre, string mail, string twitter, string blog)
			: this(nombre)
		{
			Mail = mail;
			Twitter = twitter;
			Blog = blog;
		}

		public Persona(string nombre)
		{
			Nombre = nombre;
			_cuentas = new List<Cuenta>();
		}

		public virtual string Nombre { get; private set; }

		public virtual string Mail { get; private set; }

		public virtual string Twitter { get; set; }

		public virtual string Blog { get; private set; }

		public virtual IEnumerable<Cuenta> Cuentas
		{
			get { return _cuentas; }
		}

		public virtual void AddCuenta(Cuenta cuenta)
		{
			if (!_cuentas.Contains(cuenta))
				_cuentas.Add(cuenta);
			cuenta.Persona = this;
		}

		public virtual void RemoveCuenta(Cuenta cuenta)
		{
			if (_cuentas.Contains(cuenta))
				_cuentas.Remove(cuenta);
			cuenta.Persona = null;
		}
	}

	public enum IdentityProviderEnum
	{
		BuiltIn = 1,
		Twitter = 2
	}
}