Mercurial > altnet-hispano
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 | 7 public class IdentityContext |
8 { | |
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 | 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 | 21 { |
22 if (_current == null) | |
23 throw new IdentityContextNotConfiguredException(); | |
24 return _current; | |
25 } | |
26 } | |
50
3ebe89c88caa
Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff
changeset
|
27 |
54 | 28 public static string GetUserName() |
29 { | |
30 string username = Current.GetUserName(); | |
31 if (string.IsNullOrWhiteSpace(username)) | |
32 throw new UsuarioNoAutenticadoException(); | |
33 return username; | |
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 | 41 } |
50
3ebe89c88caa
Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff
changeset
|
42 } |