Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 81:c76661cff260
Workflow de acciones sobre un evento (camino feliz)
author | nelopauselli |
---|---|
date | Tue, 24 May 2011 19:21:20 -0300 |
parents | 8df9db937434 |
children | c8897b1c6f49 |
comparison
equal
deleted
inserted
replaced
80:c2d98fd6593f | 81:c76661cff260 |
---|---|
19 _ponenteRepository = ponenteRepository; | 19 _ponenteRepository = ponenteRepository; |
20 _eventosRepository = eventosRepository; | 20 _eventosRepository = eventosRepository; |
21 _recordador = recordador; | 21 _recordador = recordador; |
22 } | 22 } |
23 | 23 |
24 public Evento GetEvento(Guid id) | 24 public Evento GetEvento(Guid eventoId) |
25 { | 25 { |
26 return _eventosRepository.Get(id); | 26 Evento evento =_eventosRepository.Get(eventoId); |
27 if (evento == null) | |
28 throw new EventoNotFoundException(eventoId); | |
29 return evento; | |
27 } | 30 } |
28 | 31 |
29 public IList<Evento> GetEventosPropuestos() | 32 public IList<Evento> GetEventosPropuestos() |
30 { | 33 { |
31 return _eventosRepository.GetEventosSinFecha() ?? new List<Evento>(); | 34 return _eventosRepository.GetEventosSinFecha() ?? new List<Evento>(); |
36 return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); | 39 return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); |
37 } | 40 } |
38 | 41 |
39 public Resultado ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha, string urlInvitacion) | 42 public Resultado ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha, string urlInvitacion) |
40 { | 43 { |
41 Evento evento = _eventosRepository.Get(id); | 44 Evento evento = GetEvento(id); |
42 if (evento == null) | |
43 throw new EventoNotFoundException(id); | |
44 | 45 |
45 Ponente ponente = null; | 46 Ponente ponente = null; |
46 if (!string.IsNullOrWhiteSpace(ponenteNombre)) | 47 if (!string.IsNullOrWhiteSpace(ponenteNombre)) |
47 ponente = GetPonente(ponenteNombre); | 48 ponente = GetPonente(ponenteNombre); |
48 | 49 |
52 if (evento.Fecha == null && fecha != null) | 53 if (evento.Fecha == null && fecha != null) |
53 evento.Agendar(ponente, fecha, urlInvitacion); | 54 evento.Agendar(ponente, fecha, urlInvitacion); |
54 else if (evento.Fecha != fecha || evento.Ponente != ponente || evento.UrlInvitacion != urlInvitacion) | 55 else if (evento.Fecha != fecha || evento.Ponente != ponente || evento.UrlInvitacion != urlInvitacion) |
55 evento.Actualizar(ponente, fecha, urlInvitacion); | 56 evento.Actualizar(ponente, fecha, urlInvitacion); |
56 | 57 |
57 if (_publicador != null) | 58 Notify(evento); |
58 _publicador.Publicar(evento); | |
59 | 59 |
60 return new Resultado(true); | 60 return new Resultado(true); |
61 } | 61 } |
62 | 62 |
63 public Resultado ModificarPropuesta(Guid id, string titulo, string ponenteNombre, string urlInvitacion) | 63 public Resultado ModificarPropuesta(Guid id, string titulo, string ponenteNombre, string urlInvitacion) |
70 Ponente ponente = GetPonente(ponenteNombre); | 70 Ponente ponente = GetPonente(ponenteNombre); |
71 var evento = Evento.Proponer(titulo, ponente, urlInvitacion); | 71 var evento = Evento.Proponer(titulo, ponente, urlInvitacion); |
72 | 72 |
73 if (string.IsNullOrWhiteSpace(evento.Titulo)) | 73 if (string.IsNullOrWhiteSpace(evento.Titulo)) |
74 return new Resultado(false); | 74 return new Resultado(false); |
75 | |
76 Notify(evento); | |
75 | 77 |
76 _eventosRepository.Save(evento); | 78 _eventosRepository.Save(evento); |
77 _ponenteRepository.Save(ponente); | 79 _ponenteRepository.Save(ponente); |
78 | 80 |
79 return new Resultado(true); | 81 return new Resultado(true); |
92 if (evento == null) | 94 if (evento == null) |
93 evento = Evento.Agendar(titulo, ponente, fecha.Value, urlInvitacion); | 95 evento = Evento.Agendar(titulo, ponente, fecha.Value, urlInvitacion); |
94 else | 96 else |
95 evento.Agendar(ponente, fecha, urlInvitacion); | 97 evento.Agendar(ponente, fecha, urlInvitacion); |
96 | 98 |
97 if (_publicador != null) | 99 Notify(evento); |
98 _publicador.Publicar(evento); | |
99 | 100 |
100 _eventosRepository.Save(evento); | 101 _eventosRepository.Save(evento); |
101 _ponenteRepository.Save(ponente); | 102 _ponenteRepository.Save(ponente); |
103 | |
104 return new Resultado(true); | |
105 } | |
106 | |
107 public Resultado Confirmar(Guid eventoId) | |
108 { | |
109 Evento evento = GetEvento(eventoId); | |
110 | |
111 evento.Confirmar(); | |
112 | |
113 Notify(evento); | |
114 | |
115 _eventosRepository.Save(evento); | |
116 | |
117 return new Resultado(true); | |
118 } | |
119 | |
120 public Resultado Publicar(Guid eventoId) | |
121 { | |
122 Evento evento = GetEvento(eventoId); | |
123 | |
124 evento.Publicar(); | |
125 | |
126 Notify(evento); | |
127 | |
128 _eventosRepository.Save(evento); | |
102 | 129 |
103 return new Resultado(true); | 130 return new Resultado(true); |
104 } | 131 } |
105 | 132 |
106 public void Recordar(Guid eventoId) | 133 public void Recordar(Guid eventoId) |
107 { | 134 { |
108 Evento evento = _eventosRepository.Get(eventoId); | 135 Evento evento = _eventosRepository.Get(eventoId); |
109 if (_recordador != null) | 136 if (_recordador != null) |
110 _recordador.Recordar(evento); | 137 _recordador.Recordar(evento); |
138 } | |
139 | |
140 private void Notify(Evento evento) | |
141 { | |
142 if (_publicador != null) | |
143 _publicador.Publicar(evento); | |
111 } | 144 } |
112 | 145 |
113 public void RegistrarPonente(string nombre, string mail, string twitter, string blog) | 146 public void RegistrarPonente(string nombre, string mail, string twitter, string blog) |
114 { | 147 { |
115 var ponente = new Ponente(nombre, mail, twitter, blog); | 148 var ponente = new Ponente(nombre, mail, twitter, blog); |