view Agendas/trunk/src/Agendas.Domain/Persona.cs @ 140:3639803112c6

Refactoring de la relación entre Evento y Estado
author nelopauselli
date Fri, 29 Jul 2011 16:30:53 -0300
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
	}
}