comparison Agendas/trunk/src/Agendas.Domain/Persona.cs @ 94:db4b1e2cae49

Cambio del nombre de la clase Ponente a Persona Se agrega la clase Cuenta para identificar cada una de las cuentas con que se puede autenticar una persona Alta Automatica de cuentas de twitter creando la persona
author Nelo@Kenia.neluz.int
date Sat, 04 Jun 2011 12:11:17 -0300
parents
children 83d76f6e0a3c
comparison
equal deleted inserted replaced
93:65f0b3d70c18 94:db4b1e2cae49
1 using System.Collections.Generic;
2
3 namespace AltNetHispano.Agendas.Domain
4 {
5 public class Persona : Identificable
6 {
7 private readonly IList<Evento> _eventos;
8 private readonly IList<Cuenta> _cuentas;
9
10 protected Persona()
11 {
12 //ctor para NHibernate
13 }
14
15 public Persona(string nombre, string mail, string twitter, string blog)
16 : this(nombre)
17 {
18 Mail = mail;
19 Twitter = twitter;
20 Blog = blog;
21 }
22
23 public Persona(string nombre)
24 {
25 Nombre = nombre;
26 _eventos = new List<Evento>();
27 _cuentas=new List<Cuenta>();
28 }
29
30 public virtual string Nombre { get; private set; }
31
32 public virtual string Mail { get; private set; }
33
34 public virtual string Twitter { get; set; }
35
36 public virtual string Blog { get; private set; }
37
38 public virtual IEnumerable<Evento> Eventos
39 {
40 get { return _eventos; }
41 }
42
43 public virtual void AddEvento(Evento evento)
44 {
45 if (!_eventos.Contains(evento))
46 _eventos.Add(evento);
47 }
48
49 public virtual void RemoveEvento(Evento evento)
50 {
51 if (_eventos.Contains(evento))
52 _eventos.Remove(evento);
53 }
54
55 public virtual IEnumerable<Cuenta> Cuentas
56 {
57 get { return _cuentas; }
58 }
59
60 public virtual void AddCuenta(Cuenta cuenta)
61 {
62 if (!_cuentas.Contains(cuenta))
63 _cuentas.Add(cuenta);
64 cuenta.Persona = this;
65 }
66
67 public virtual void RemoveCuenta(Cuenta cuenta)
68 {
69 if (_cuentas.Contains(cuenta))
70 _cuentas.Remove(cuenta);
71 cuenta.Persona = null;
72 }
73 }
74
75 public enum IdentityProviderEnum
76 {
77 BuiltIn = 1,
78 Twitter = 2
79 }
80 }