Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/Evento.cs @ 139:18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
author | nelopauselli |
---|---|
date | Thu, 28 Jul 2011 10:16:09 -0300 |
parents | 62791999ad01 |
children | 3639803112c6 |
rev | line source |
---|---|
1 | 1 using System; |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
2 using System.Collections; |
12 | 3 using System.Collections.Generic; |
104 | 4 using AltNetHispano.Agendas.Domain.Exceptions; |
1 | 5 |
6 namespace AltNetHispano.Agendas.Domain | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
7 { |
56
65bbcdd5d357
Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents:
54
diff
changeset
|
8 public class Evento : Identificable |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
9 { |
63 | 10 protected Evento() |
57 | 11 { |
54 | 12 _tracks = new List<Track>(); |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
13 _patrocinadores = new List<Patrocinador>(); |
54 | 14 } |
15 | |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
16 #region Propiedades del Evento |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
17 |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
18 private readonly IList<Track> _tracks; |
111
90ce239cfa6d
Tests sobre el publicador de twitter, cada track se pulica solo una vez
Nelo@Kenia.neluz.int
parents:
106
diff
changeset
|
19 private ICollection<Track> _newTracks = new List<Track>(); |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
20 |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
21 /// <summary> |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
22 /// Título del evento |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
23 /// </summary> |
63 | 24 public virtual string Titulo { get; private set; } |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
25 |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
26 /// <summary> |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
27 /// Fecha para la que se encuentra agendado el evento |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
28 /// </summary> |
63 | 29 public virtual DateTime? Fecha { get; private set; } |
70
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
30 |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
31 /// <summary> |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
32 /// Url con la invitacion realizada por el ponente (en la mayoria de los casos va a ser un link al thread de la lista de correo) |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
33 /// </summary> |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
34 public virtual string UrlInvitacion { get; private set; } |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
35 |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
36 /// <summary> |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
37 /// Url a la pagina de la wiki con el video de la reunion virtual |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
38 /// </summary> |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
39 public virtual string UrlWiki { get; private set; } |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
40 |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
41 /// <summary> |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
42 /// Numero de orden en el historico de reuniones virtuales |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
43 /// </summary> |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
44 public virtual short NumeroOrden { get; private set; } |
c7264bfc4b71
agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents:
63
diff
changeset
|
45 |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
46 /// <summary> |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
47 /// Ponente o responsable del evento |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
48 /// </summary> |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
49 public virtual Persona Ponente { get; private set; } |
39 | 50 |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
51 /// <summary> |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
52 /// Track de cambios que ha sufrido el evento |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
53 /// </summary> |
63 | 54 public virtual IEnumerable<Track> Tracks |
54 | 55 { |
56 get { return _tracks; } | |
57 } | |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
58 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
59 /// <summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
60 /// Estado del evento en formato string (para persistencia a DB) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
61 /// </summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
62 public virtual string Estado |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
63 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
64 get |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
65 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
66 if (_eventoState != null) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
67 return _eventoState.GetDescripcion(); |
103 | 68 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
69 return string.Empty; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
70 } |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
71 set |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
72 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
73 if (value != Estado) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
74 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
75 if (EventoPropuestoState.GetInstance().GetDescripcion().Equals(value)) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
76 _eventoState = EventoPropuestoState.GetInstance(); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
77 else if (EventoAgendadoState.GetInstance().GetDescripcion().Equals(value)) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
78 _eventoState = EventoAgendadoState.GetInstance(); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
79 else if (EventoConfirmadoState.GetInstance().GetDescripcion().Equals(value)) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
80 _eventoState = EventoConfirmadoState.GetInstance(); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
81 else if (EventoPublicadoState.GetInstance().GetDescripcion().Equals(value)) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
82 _eventoState = EventoPublicadoState.GetInstance(); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
83 else if (EventoCanceladoState.GetInstance().GetDescripcion().Equals(value)) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
84 _eventoState = EventoCanceladoState.GetInstance(); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
85 else if (EventoDescartadoState.GetInstance().GetDescripcion().Equals(value)) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
86 _eventoState = EventoDescartadoState.GetInstance(); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
87 else |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
88 throw new InvalidStateException(value); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
89 } |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
90 } |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
91 } |
103 | 92 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
93 private EventoState _eventoState; |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
94 private IList<Patrocinador> _patrocinadores; |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
97
diff
changeset
|
95 |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
96 /// <summary> |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
97 /// Obtiene una instancia de la clase que representa el estado del evento |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
98 /// </summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
99 public virtual EventoState GetEstado() |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
100 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
101 if (_eventoState == null) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
102 SetEstado(EventoNullState.GetInstance()); |
103 | 103 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
104 return _eventoState; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
105 } |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
97
diff
changeset
|
106 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
107 /// <summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
108 /// Asigna la instancia de la clase que representa el estado del evento |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
109 /// </summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
110 /// <param name="eventoState">Instancia que representa el estado</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
111 public virtual void SetEstado(EventoState eventoState) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
112 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
113 _eventoState = eventoState; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
114 } |
103 | 115 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
116 public virtual TipoEvento Tipo { get; private set; } |
106
80c22175c9b5
agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents:
105
diff
changeset
|
117 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
118 public virtual IEnumerable<Patrocinador> Patrocinadores |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
119 { |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
120 get |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
121 { |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
122 return _patrocinadores; |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
123 } |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
124 } |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
125 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
126 protected internal virtual void AddPatrocinador(Patrocinador patrocinador) |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
127 { |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
128 _patrocinadores.Add(patrocinador); |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
129 } |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
130 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
131 protected internal virtual void RemovePatrocinador(Patrocinador patrocinador) |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
132 { |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
133 _patrocinadores.Remove(patrocinador); |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
134 } |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
135 |
138
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
136 |
62791999ad01
Agregando relación entre Evento y Patrocinador
nelopauselli
parents:
133
diff
changeset
|
137 #endregion |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
138 |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
139 #region Acciones sobre el evento |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
140 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
141 /// <summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
142 /// Propone un evento |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
143 /// </summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
144 /// <param name="titulo">Título del evento propuesto</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
145 /// <param name="persona">Ponente para evento propuesto</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
146 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
147 /// <param name="tipo">Tipo del evento</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
148 /// <returns></returns> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
149 public static Evento Proponer(string titulo, Persona persona, string urlInvitacion, TipoEvento tipo) |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
150 { |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
151 var evento = new Evento { Titulo = titulo, Ponente = persona, UrlInvitacion = urlInvitacion, Tipo = tipo }; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
152 evento.GetEstado().Promover(evento, Accion.Proponer); |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
153 |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
154 return evento; |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
155 } |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
156 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
157 /// <summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
158 /// Agenda un evento que no estaba propuesto |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
159 /// </summary> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
160 /// <param name="titulo">Título del evento a agendar</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
161 /// <param name="persona">Ponente para el evento</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
162 /// <param name="fecha">Fecha de realización del evento</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
163 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
164 /// <param name="tipo">Tipo del evento</param> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
165 /// <returns></returns> |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
166 public static Evento Agendar(string titulo, Persona persona, DateTime fecha, string urlInvitacion, TipoEvento tipo) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
167 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
168 var evento = new Evento { Titulo = titulo, Tipo = tipo }; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
169 evento.Agendar(persona, fecha, urlInvitacion); |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
170 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
171 return evento; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
172 } |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
173 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
174 /// <summary> |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
175 /// Agenda el evento actual |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
176 /// </summary> |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
177 /// <param name="persona">Ponente para el evento</param> |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
178 /// <param name="fecha">Fecha de realización del evento</param> |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
179 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param> |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
180 public virtual void Agendar(Persona persona, DateTime? fecha, string urlInvitacion) |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
181 { |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
182 Ponente = persona; |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
183 Fecha = fecha; |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
184 UrlInvitacion = urlInvitacion; |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
185 this.GetEstado().Promover(this, Accion.Agendar); |
74
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
186 } |
bc46e7426c80
Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents:
73
diff
changeset
|
187 |
94
db4b1e2cae49
Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents:
87
diff
changeset
|
188 public virtual void Actualizar(Persona persona, DateTime? fecha, string urlInvitacion) |
54 | 189 { |
97
2434c2323f3d
En el evento, volvemos a llamar Ponente a la persona que está a cargo de la presentación
Nelo@Kenia.neluz.int
parents:
95
diff
changeset
|
190 Ponente = persona; |
54 | 191 Fecha = fecha; |
79
8df9db937434
Url de invitación en la UI: validación y persistencia
nelopauselli
parents:
75
diff
changeset
|
192 UrlInvitacion = urlInvitacion; |
39 | 193 |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
81
diff
changeset
|
194 AddTrack(new Track(this, Accion.Modificar)); |
54 | 195 } |
41
07c47ea2ac00
movimos el AddTrack a cada acción dentro de Evento
nelopauselli
parents:
39
diff
changeset
|
196 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
197 public virtual void CambiarTitulo(string titulo) |
54 | 198 { |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
199 Titulo = titulo; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
200 AddTrack(new Track(this, Accion.CambiarTitulo)); |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
111
diff
changeset
|
201 } |
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
111
diff
changeset
|
202 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
203 public virtual void Confirmar() |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
204 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
205 this.GetEstado().Promover(this, Accion.Confirmar); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
206 } |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
207 |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
208 public virtual void Publicar(short numeroOrden, string urlWiki) |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
209 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
210 this.NumeroOrden = numeroOrden; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
211 this.UrlWiki = urlWiki; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
212 this.GetEstado().Promover(this, Accion.Publicar); |
54 | 213 } |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
214 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
215 public virtual void Cancelar() |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
216 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
217 GetEstado().Promover(this, Accion.Cancelar); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
218 } |
133
6f1041301797
Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents:
111
diff
changeset
|
219 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
220 public virtual void Descartar() |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
221 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
222 GetEstado().Promover(this, Accion.Descartar); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
223 } |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
80
diff
changeset
|
224 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
225 public virtual void ReProponer() |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
226 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
227 GetEstado().Promover(this, Accion.ReProponer); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
228 } |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
80
diff
changeset
|
229 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
230 public virtual void ReAgendar() |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
231 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
232 GetEstado().Promover(this, Accion.ReAgendar); |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
233 } |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
234 #endregion |
39 | 235 |
101
9bfdd5bf3ad2
Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents:
97
diff
changeset
|
236 protected internal virtual void AddTrack(Track track) |
54 | 237 { |
87
26d0513a8410
A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents:
81
diff
changeset
|
238 _newTracks.Add(track); |
54 | 239 _tracks.Add(track); |
240 } | |
81
c76661cff260
Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents:
80
diff
changeset
|
241 |
139
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
242 public virtual IEnumerable<Track> GetTrackNews() |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
243 { |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
244 return _newTracks; |
18e5a78186e4
Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents:
138
diff
changeset
|
245 } |
38
3c5657d99727
Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents:
24
diff
changeset
|
246 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
247 } |