Mercurial > altnet-hispano
comparison Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 50:3ebe89c88caa
Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
última modificación.
author | nelopauselli |
---|---|
date | Fri, 13 May 2011 23:29:05 -0300 |
parents | 07c47ea2ac00 |
children | d149bfea3892 |
comparison
equal
deleted
inserted
replaced
49:be7a9720fb96 | 50:3ebe89c88caa |
---|---|
7 { | 7 { |
8 public class Agenda | 8 public class Agenda |
9 { | 9 { |
10 private readonly IPublicador _publicador; | 10 private readonly IPublicador _publicador; |
11 private readonly IRecordador _recordador; | 11 private readonly IRecordador _recordador; |
12 private readonly ISeguridad _seguridad; | 12 private readonly IEventoRepository _eventosRepository; |
13 private readonly IEventoRepository _eventosRepository; | |
14 private readonly IPonenteRepository _ponenteRepository; | 13 private readonly IPonenteRepository _ponenteRepository; |
15 | 14 |
16 public Agenda(IPublicador publicador, IRecordador recordador, ISeguridad seguridad, IEventoRepository eventosRepository, IPonenteRepository ponenteRepository) | 15 public Agenda(IPublicador publicador, IRecordador recordador, IEventoRepository eventosRepository, IPonenteRepository ponenteRepository) |
17 { | 16 { |
18 _publicador = publicador; | 17 _publicador = publicador; |
19 _ponenteRepository = ponenteRepository; | 18 _ponenteRepository = ponenteRepository; |
20 _eventosRepository = eventosRepository; | 19 _eventosRepository = eventosRepository; |
21 _recordador = recordador; | 20 _recordador = recordador; |
22 _seguridad = seguridad; | |
23 } | 21 } |
24 | 22 |
25 public void Publicar(string titulo, string ponenteNombre, DateTime? fecha) | 23 public void Publicar(string titulo, string ponenteNombre, DateTime? fecha) |
26 { | 24 { |
27 var ponente = GetPonente(ponenteNombre); | 25 var ponente = GetPonente(ponenteNombre); |
29 var evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento (titulo); | 27 var evento = _eventosRepository.GetPropuestaByTitulo(titulo) ?? new Evento (titulo); |
30 evento.Publicar(ponente, fecha); | 28 evento.Publicar(ponente, fecha); |
31 | 29 |
32 if (!evento.Fecha.HasValue) | 30 if (!evento.Fecha.HasValue) |
33 throw new ValidationException(); | 31 throw new ValidationException(); |
34 if (NoEstaAutenticado(_seguridad)) | |
35 throw new UsuarioNoAutenticadoException(); | |
36 if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) | 32 if (string.IsNullOrWhiteSpace(evento.Ponente.Nombre)) |
37 throw new ValidationException(); | 33 throw new ValidationException(); |
38 | 34 |
39 if (_publicador != null) | 35 if (_publicador != null) |
40 _publicador.Publicar(evento); | 36 _publicador.Publicar(evento); |
56 var evento = new Evento (titulo); | 52 var evento = new Evento (titulo); |
57 evento.Actualizar(ponente); | 53 evento.Actualizar(ponente); |
58 | 54 |
59 if (string.IsNullOrWhiteSpace(evento.Titulo)) | 55 if (string.IsNullOrWhiteSpace(evento.Titulo)) |
60 throw new ValidationException(); | 56 throw new ValidationException(); |
61 if (NoEstaAutenticado(_seguridad)) | |
62 throw new UsuarioNoAutenticadoException(); | |
63 _eventosRepository.Save(evento); | 57 _eventosRepository.Save(evento); |
64 _ponenteRepository.Save(ponente); | 58 _ponenteRepository.Save(ponente); |
65 } | 59 } |
66 | 60 |
67 public IList<Evento> GetEventosPropuestos() | 61 public IList<Evento> GetEventosPropuestos() |
70 } | 64 } |
71 | 65 |
72 public IList<Evento> GetEventosPublicados() | 66 public IList<Evento> GetEventosPublicados() |
73 { | 67 { |
74 return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); | 68 return _eventosRepository.GetEventosConFecha() ?? new List<Evento>(); |
75 } | |
76 | |
77 private static bool NoEstaAutenticado(ISeguridad seguridad) | |
78 { | |
79 return seguridad == null || seguridad.GetPrincipal() == null | |
80 || string.IsNullOrWhiteSpace(seguridad.GetPrincipal().Identity.Name); | |
81 } | 69 } |
82 | 70 |
83 public void ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha) | 71 public void ModificarEvento(Guid id, string titulo, string ponenteNombre, DateTime? fecha) |
84 { | 72 { |
85 var evento = _eventosRepository.Get(id); | 73 var evento = _eventosRepository.Get(id); |