annotate Agendas/trunk/src/Agendas.Domain/IdentityContext.cs @ 104:c5034884c7d7

refactor para que los estados sean singletons
author jorge.rowies
date Sun, 05 Jun 2011 13:22:36 -0300
parents db4b1e2cae49
children 0bca45e1e664
rev   line source
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
1 using System;
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
2 using AltNetHispano.Agendas.Domain.Exceptions;
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
3 using AltNetHispano.Agendas.Domain.Repositories;
50
3ebe89c88caa Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff changeset
4
3ebe89c88caa Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff changeset
5 namespace AltNetHispano.Agendas.Domain
3ebe89c88caa Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff changeset
6 {
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
7 public class IdentityContext
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
8 {
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
9 private static ISeguridad _current;
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
10 private static IPersonaRepository _personaRepository;
50
3ebe89c88caa Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff changeset
11
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
12 public static void Init(ISeguridad seguridad, IPersonaRepository personaRepository)
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
13 {
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
14 _current = seguridad;
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
15 _personaRepository = personaRepository;
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
16 }
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
17
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
18 private static ISeguridad Current
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
19 {
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
20 get
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
21 {
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
22 if (_current == null)
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
23 throw new IdentityContextNotConfiguredException();
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
24 return _current;
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
25 }
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
26 }
50
3ebe89c88caa Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff changeset
27
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
28 public static string GetUserName()
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
29 {
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
30 string username = Current.GetUserName();
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
31 if (string.IsNullOrWhiteSpace(username))
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
32 throw new UsuarioNoAutenticadoException();
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
33 return username;
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
34 }
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
35
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
36 public static Persona GetUsuario()
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
37 {
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
38 var cuenta = _personaRepository.GetCuenta(IdentityProviderEnum.Twitter, GetUserName());
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
39 return cuenta != null ? cuenta.Persona : null;
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
40 }
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
41 }
50
3ebe89c88caa Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff changeset
42 }