annotate Agendas/trunk/src/Agendas.Domain/Evento.cs @ 185:2d02adb79322

Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio. Se modifica la propiedad Fecha del Evento, renombrandola FechaInicio. En el ModelView se agrega propiedades Duración y Hora del Evento cuando es Modificado, Nuevo y Agendado. Las fechas ingresadas son creadas en sistema UTC Queda pendiente Agregar duración a Google Calendar.
author alabra
date Tue, 09 Aug 2011 01:04:27 -0400
parents beeb48ddb44a
children 5346c0500594
rev   line source
1
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
1 using System;
12
05996fa19e04 Unificamos Van y Cafe en Evento
nelo@MTEySS.neluz.int
parents: 4
diff changeset
2 using System.Collections.Generic;
182
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
3 using System.Linq;
1
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
4
6bb4ab4c0611 Tests de Crud para repositorio de Vans
nelopauselli
parents: 0
diff changeset
5 namespace AltNetHispano.Agendas.Domain
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
6 {
56
65bbcdd5d357 Pasando la responsabilidad de generar el Id al repositorio
nelopauselli
parents: 54
diff changeset
7 public class Evento : Identificable
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
8 {
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
9 protected Evento()
57
3d9e6d56d903 Refactoring del track de cambios de un evento
nelopauselli
parents: 56
diff changeset
10 {
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
11 _tracks = new List<Track>();
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
12 _patrocinadores = new List<Patrocinador>();
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
13 }
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
14
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
15 #region Propiedades del Evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
16
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
17 private readonly IList<Track> _tracks;
182
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
18 private readonly 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
19
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
20 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
21 /// Título del evento
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
22 /// </summary>
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
23 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
24
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
25 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
26 /// 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
27 /// </summary>
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
28 public virtual DateTime? FechaInicio { get; private set; }
70
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
29
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
30 /// <summary>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
31 /// Fecha de termino o finalización del evento.
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
32 /// </summary>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
33 public virtual DateTime? FechaTermino { get; private set; }
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
34
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
35 /// <summary>
70
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
36 /// 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
37 /// </summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
38 public virtual string UrlInvitacion { get; private set; }
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
39
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
40 /// <summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
41 /// 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
42 /// </summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
43 public virtual string UrlWiki { get; private set; }
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
44
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
45 /// <summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
46 /// 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
47 /// </summary>
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
48 public virtual short NumeroOrden { get; private set; }
c7264bfc4b71 agregado de properties en clase Evento (UrlInvitacion, UrlWiki, NumeroOrden)
jorge.rowies
parents: 63
diff changeset
49
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
50 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
51 /// 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
52 /// </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
53 public virtual Persona Ponente { get; private set; }
39
e548379cc314 track de cambios en evento
nelo@MTEySS.neluz.int
parents: 38
diff changeset
54
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
55 /// <summary>
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
56 /// 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
57 /// </summary>
63
963b71ea6028 Repositorios con NH
nelopauselli
parents: 61
diff changeset
58 public virtual IEnumerable<Track> Tracks
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
59 {
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
60 get { return _tracks; }
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
61 }
38
3c5657d99727 Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents: 24
diff changeset
62
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
63 private EventoState _estado;
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
64
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
65 /// <summary>
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
66 /// 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
67 /// </summary>
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
68 public virtual EventoState Estado
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
69 {
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
70 get { return _estado ?? EventoNullState.GetInstance(); }
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
71 set { _estado = value; }
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
72 }
103
23325dddddcc Persistencia del estado de los eventos
jorge.rowies
parents: 101
diff changeset
73
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
74 //private EventoState _eventoState;
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
75 private IList<Patrocinador> _patrocinadores;
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
76
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
77 public virtual TipoEvento Tipo { get; private set; }
106
80c22175c9b5 agregado de tipo de evento (van, cafe, grupoestudio)
jorge.rowies
parents: 105
diff changeset
78
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
79 public virtual IEnumerable<Patrocinador> Patrocinadores
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
80 {
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
81 get
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
82 {
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
83 return _patrocinadores;
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
84 }
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
85 }
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
86
169
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
87 /// <summary>
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
88 /// Determina la duración de un evento.
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
89 /// </summary>
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
90 public virtual TimeSpan Duracion
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
91 {
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
92 get; set;
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
93 }
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
94
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
95 protected internal virtual void AddPatrocinador(Patrocinador patrocinador)
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
96 {
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
97 _patrocinadores.Add(patrocinador);
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
98 }
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
99
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
100 protected internal virtual void RemovePatrocinador(Patrocinador patrocinador)
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
101 {
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
102 _patrocinadores.Remove(patrocinador);
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
103 }
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
104
138
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
105
62791999ad01 Agregando relación entre Evento y Patrocinador
nelopauselli
parents: 133
diff changeset
106 #endregion
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
107
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
108 #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
109
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
110 /// <summary>
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
111 /// Propone un evento
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
112 /// </summary>
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
113 /// <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
114 /// <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
115 /// <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
116 /// <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
117 /// <returns></returns>
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
118 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
119 {
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
120 var evento = new Evento { Titulo = titulo, Ponente = persona, UrlInvitacion = urlInvitacion, Tipo = tipo };
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
121 evento.Estado.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
122
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
123 return evento;
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
124 }
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
125
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
126 /// <summary>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
127 /// Agenda un evento que no estaba propuesto
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
128 /// </summary>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
129 /// <param name="titulo">Título del evento a agendar</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
130 /// <param name="persona">Ponente para el evento</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
131 /// <param name="fechaInicio">Fecha de realización del evento</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
132 /// <param name="fechaTermino">Fecha de termino del evento</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
133 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
134 /// <param name="tipo">Tipo del evento</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
135 /// <returns></returns>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
136 public static Evento Agendar(string titulo, Persona persona, DateTime fechaInicio, DateTime fechaTermino, string urlInvitacion, TipoEvento tipo)
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
137 {
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
138 var evento = new Evento { Titulo = titulo, Tipo = tipo };
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
139 evento.Agendar(persona, fechaInicio, fechaTermino, urlInvitacion);
74
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 return evento;
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
142 }
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
143
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
144 /// <summary>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
145 /// Agenda el evento actual
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
146 /// </summary>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
147 /// <param name="persona">Ponente para el evento</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
148 /// <param name="fechaInicio">Fecha de realización del evento</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
149 /// <param name="fechaTermino">Fecha de termino del evento</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
150 /// <param name="urlInvitacion">Url con la invitación realizada por el ponente</param>
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
151 public virtual void Agendar(Persona persona, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion)
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
152 {
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
153 Ponente = persona;
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
154 FechaInicio = fechaInicio;
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
155 FechaTermino = fechaTermino;
74
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
156 UrlInvitacion = urlInvitacion;
169
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
157 Estado.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
158 }
bc46e7426c80 Refactoring de acciones según la definición del diagrama de estados en assembla
nelopauselli
parents: 73
diff changeset
159
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
160 public virtual void Actualizar(Persona persona, DateTime? fechaInicio, DateTime? fechaTermino, string urlInvitacion)
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
161 {
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
162 Ponente = persona;
185
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
163 FechaInicio = fechaInicio;
2d02adb79322 Se agrega fecha de termino de un Evento y se incluye la hora a la fecha de inicio.
alabra
parents: 182
diff changeset
164 FechaTermino = fechaTermino;
79
8df9db937434 Url de invitación en la UI: validación y persistencia
nelopauselli
parents: 75
diff changeset
165 UrlInvitacion = urlInvitacion;
39
e548379cc314 track de cambios en evento
nelo@MTEySS.neluz.int
parents: 38
diff changeset
166
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
167 AddTrack(new Track(this, Accion.Modificar));
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
168 }
41
07c47ea2ac00 movimos el AddTrack a cada acción dentro de Evento
nelopauselli
parents: 39
diff changeset
169
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
170 public virtual void CambiarTitulo(string titulo)
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
171 {
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
172 Titulo = titulo;
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
173 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
174 }
6f1041301797 Se agregan los estados Cancelado y Descartado con las acciones Cancelar, Reagendar, Descartar, Reproponer, según ticket 146.
alabra
parents: 111
diff changeset
175
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
176 public virtual void Confirmar()
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
177 {
169
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
178 Estado.Promover(this, Accion.Confirmar);
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
179 }
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
180
169
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
181 public virtual void Publicar(short numeroOrden, string urlWiki, TimeSpan duracion)
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
182 {
169
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
183 NumeroOrden = numeroOrden;
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
184 UrlWiki = urlWiki;
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
185 Duracion = duracion;
5c94b052d838 Ticket 153: UI de Publicar. Faltaba la Duración del evento en la capa de negocios.
juanjose.montesdeocaarbos
parents: 140
diff changeset
186 Estado.Promover(this, Accion.Publicar);
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
187 }
38
3c5657d99727 Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents: 24
diff changeset
188
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
189 public virtual void Cancelar()
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
190 {
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
191 Estado.Promover(this, Accion.Cancelar);
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
192 }
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
193
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
194 public virtual void Descartar()
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
195 {
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
196 Estado.Promover(this, Accion.Descartar);
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
197 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
198
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
199 public virtual void ReProponer()
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
200 {
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
201 Estado.Promover(this, Accion.ReProponer);
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
202 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
203
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
204 public virtual void ReAgendar()
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
205 {
140
3639803112c6 Refactoring de la relación entre Evento y Estado
nelopauselli
parents: 139
diff changeset
206 Estado.Promover(this, Accion.ReAgendar);
139
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 #endregion
39
e548379cc314 track de cambios en evento
nelo@MTEySS.neluz.int
parents: 38
diff changeset
209
101
9bfdd5bf3ad2 Manejo de estados de los Eventos mediante state pattern (primer version)
jorge.rowies
parents: 97
diff changeset
210 protected internal virtual void AddTrack(Track track)
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
211 {
87
26d0513a8410 A los publicadores les llega la lista de tracks producidos en la acción realizada
nelopauselli
parents: 81
diff changeset
212 _newTracks.Add(track);
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
213 _tracks.Add(track);
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
214 }
81
c76661cff260 Workflow de acciones sobre un evento (camino feliz)
nelopauselli
parents: 80
diff changeset
215
139
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
216 public virtual IEnumerable<Track> GetTrackNews()
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
217 {
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
218 return _newTracks;
18e5a78186e4 Corrección de virtual y visibilidad de los métodos por nh
nelopauselli
parents: 138
diff changeset
219 }
182
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
220
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
221 public virtual IEnumerable<TrackLog> GetLogsNews()
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
222 {
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
223 var logs = new List<TrackLog>();
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
224 foreach (var track in _newTracks)
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
225 logs.AddRange(track.GetLogsNews());
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
226 return logs;
beeb48ddb44a Warning con los errores que se guarden en el log del track de un evento durante una notificación (twitter, calendar, blog)
nelopauselli
parents: 169
diff changeset
227 }
38
3c5657d99727 Cambio de setters de las propiedades a private
nelo@MTEySS.neluz.int
parents: 24
diff changeset
228 }
0
3f7dbb633b71 Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff changeset
229 }