comparison Agendas/trunk/src/Agendas.Domain/Evento.cs @ 57:3d9e6d56d903

Refactoring del track de cambios de un evento
author nelopauselli
date Mon, 16 May 2011 20:23:31 -0300
parents 65bbcdd5d357
children cb3f7b47c1f0
comparison
equal deleted inserted replaced
56:65bbcdd5d357 57:3d9e6d56d903
6 public class Evento : Identificable 6 public class Evento : Identificable
7 { 7 {
8 private readonly IList<Track> _tracks; 8 private readonly IList<Track> _tracks;
9 private IList<string> _enlaces; 9 private IList<string> _enlaces;
10 10
11 public Evento(string titulo) 11 public static Evento Proponer(string titulo, Ponente ponente)
12 { 12 {
13 Titulo = titulo; 13 var evento = new Evento { Titulo = titulo, Ponente = ponente };
14 evento.AddTracks(new Track(Accion.Proponer));
14 15
16 return evento;
17 }
18
19 public static Evento Publicar(string titulo, Ponente ponente, DateTime fecha)
20 {
21 var evento = new Evento { Titulo = titulo };
22 evento.Publicar(ponente, fecha);
23
24 return evento;
25 }
26
27 private Evento()
28 {
15 _enlaces = new List<string>(); 29 _enlaces = new List<string>();
16 _tracks = new List<Track>(); 30 _tracks = new List<Track>();
17 } 31 }
18 32
19 public string Titulo { get; private set; } 33 public string Titulo { get; private set; }
20 public DateTime? Fecha { get; private set; } 34 public DateTime? Fecha { get; private set; }
21 public string Sintesis { get; private set; } 35 public string Sintesis { get; private set; }
22 public Ponente Ponente { get; private set; } 36 public Ponente Ponente { get; private set; }
23 protected string Usuario { get; private set; }
24 37
25 public IEnumerable<string> Enlaces 38 public IEnumerable<string> Enlaces
26 { 39 {
27 get { return _enlaces; } 40 get { return _enlaces; }
28 } 41 }
32 get { return _tracks; } 45 get { return _tracks; }
33 } 46 }
34 47
35 public void Actualizar(Ponente ponente, DateTime? fecha) 48 public void Actualizar(Ponente ponente, DateTime? fecha)
36 { 49 {
37 Usuario = IdentityContext.GetUserName();
38 Ponente = ponente; 50 Ponente = ponente;
39 Fecha = fecha; 51 Fecha = fecha;
40 52
41 AddTracks(new Track(Accion.Modificar)); 53 AddTracks(new Track(Accion.Modificar));
42 } 54 }
43 55
44 public void Actualizar(Ponente ponente)
45 {
46 Usuario = IdentityContext.GetUserName();
47 Ponente = ponente;
48 }
49
50 public void CambiarTitulo(string titulo) 56 public void CambiarTitulo(string titulo)
51 { 57 {
52 Usuario = IdentityContext.GetUserName();
53 Titulo = titulo; 58 Titulo = titulo;
54 AddTracks(new Track(Accion.CambiarTitulo)); 59 AddTracks(new Track(Accion.CambiarTitulo));
55 } 60 }
56 61
57 public void Publicar(Ponente ponente, DateTime? fecha) 62 public void Publicar(Ponente ponente, DateTime? fecha)
58 { 63 {
59 Usuario = IdentityContext.GetUserName();
60 Ponente = ponente; 64 Ponente = ponente;
61 Fecha = fecha; 65 Fecha = fecha;
62 AddTracks(new Track(Accion.Publicar)); 66 AddTracks(new Track(Accion.Publicar));
63 } 67 }
64 68
65 public void Realizado(DateTime fecha, string sintesis, IList<string> enlaces) 69 public void Realizado(DateTime fecha, string sintesis, IList<string> enlaces)
66 { 70 {
67 Usuario = IdentityContext.GetUserName();
68 Fecha = fecha; 71 Fecha = fecha;
69 Sintesis = sintesis; 72 Sintesis = sintesis;
70 _enlaces = enlaces; 73 _enlaces = enlaces;
71 } 74 }
72 75
73 public void Realizado(string sintesis) 76 public void Realizado(string sintesis)
74 { 77 {
75 Usuario = IdentityContext.GetUserName();
76 Sintesis = sintesis; 78 Sintesis = sintesis;
77 AddTracks(new Track(Accion.Realizar)); 79 AddTracks(new Track(Accion.Realizar));
78 } 80 }
79 81
80 private void AddTracks(Track track) 82 private void AddTracks(Track track)
81 { 83 {
82 _tracks.Add(track); 84 _tracks.Add(track);
83 } 85 }
84 } 86 }
85
86 public class Track
87 {
88 public Track(string accion)
89 {
90 Accion = accion;
91 }
92
93 public string Accion { get; private set; }
94 }
95
96 public class Accion
97 {
98 public const string Publicar = "Publicar";
99 public const string Modificar = "Modificar";
100 public const string CambiarTitulo = "CambiarTitulo";
101 public const string Realizar = "Realizar";
102 }
103 } 87 }