Mercurial > altnet-hispano
annotate Agendas/trunk/src/Agendas.Domain/Agenda.cs @ 9:c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
Se valida autenticación al Publicar.
author | juanjose.montesdeocaarbos |
---|---|
date | Sat, 12 Feb 2011 12:22:36 -0300 |
parents | cae27d7eb697 |
children | 9d6b28a696d1 |
rev | line source |
---|---|
1 | 1 using System; |
2 | 2 using System.Collections.Generic; |
4 | 3 using AltNetHispano.Agendas.Domain.Exceptions; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
4 |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
5 namespace AltNetHispano.Agendas.Domain |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
6 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
7 public class Agenda |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
8 { |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
9 private readonly IList<Evento> _eventosPropuestos; |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
10 private readonly IList<Evento> _eventosPublicados; |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
11 private readonly IPublicador _publicador; |
1 | 12 private readonly IRecordador _recordador; |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
13 private readonly ISeguridad _seguridad; |
2 | 14 |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
15 public Agenda(IPublicador publicador, IRecordador recordador, ISeguridad seguridad) |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
16 { |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
17 _publicador = publicador; |
1 | 18 _recordador = recordador; |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
19 _seguridad = seguridad; |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
20 _eventosPropuestos = new List<Evento>(); |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
21 _eventosPublicados = new List<Evento>(); |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
22 } |
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
23 |
3 | 24 public Guid Id { get; set; } |
25 | |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
26 public void Publicar(Evento evento) |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
27 { |
4 | 28 if (!evento.Fecha.HasValue) |
29 throw new ValidationException(); | |
1 | 30 if (_publicador != null) |
31 _publicador.Publicar(evento); | |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
32 if (EsAutenticado(_seguridad)) |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
33 throw new ValidationException(); |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
34 _eventosPublicados.Add(evento); |
1 | 35 } |
36 | |
4 | 37 public void Publicar(Van van) |
38 { | |
39 if (string.IsNullOrWhiteSpace(van.Ponente)) | |
40 throw new ValidationException(); | |
41 Publicar(van as Evento); | |
42 } | |
43 | |
1 | 44 public void Recordar(Evento evento) |
45 { | |
46 if (_recordador != null) | |
47 _recordador.Recordar(evento); | |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
48 } |
4 | 49 |
50 public void Proponer(Van van) | |
51 { | |
52 if (string.IsNullOrWhiteSpace(van.Titulo)) | |
53 throw new ValidationException(); | |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
54 if (EsAutenticado(_seguridad)) |
8
cae27d7eb697
Se agregó ISeguridad para validar autenticaciones de usuarios.
juanjose.montesdeocaarbos
parents:
7
diff
changeset
|
55 throw new ValidationException(); |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
56 _eventosPropuestos.Add(van); |
4 | 57 } |
58 | |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
59 public IList<Evento> GetEventosPropuestos() |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
60 { |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
61 return _eventosPropuestos; |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
62 } |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
63 |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
64 public IList<Evento> GetEventosPublicados() |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
65 { |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
66 return _eventosPublicados; |
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
67 } |
9
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
68 |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
69 private bool EsAutenticado(ISeguridad seguridad) { |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
70 return seguridad != null && seguridad.GetPrincipal() != null && seguridad.GetPrincipal().Identity != null |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
71 && string.IsNullOrWhiteSpace(seguridad.GetPrincipal().Identity.Name); |
c90492faf268
Se implementa seguridad a través del constructor y no como parámetro
juanjose.montesdeocaarbos
parents:
8
diff
changeset
|
72 } |
6
2912c1dd0e6b
Se verificó mediante un test que las propuestas y las publicaciones se estaban mezclando. Se corrigió el bug.
juanjose.montesdeocaarbos
parents:
4
diff
changeset
|
73 } |
0
3f7dbb633b71
Test sobre la publicación de Eventos al registrarlos en la Agenda
nelopauselli
parents:
diff
changeset
|
74 } |