annotate Agendas/trunk/src/Agendas.Domain/IdentityContext.cs @ 115:7a2eeb9e9bf9

Crear cuenta interna asociada
author Nelo@Kenia.neluz.int
date Sun, 12 Jun 2011 01:40:09 -0300
parents 0bca45e1e664
children 1deccd6c3cb2
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 {
115
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
30 return Current.GetUserName();
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
31 }
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
32
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
33 public static bool IsAuthenticated()
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
34 {
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
35 return !string.IsNullOrWhiteSpace(GetUserName());
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
36 }
94
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 public static Persona GetUsuario()
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
39 {
115
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
40 var userName = GetUserName();
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
41 if (string.IsNullOrWhiteSpace(userName))
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
42 throw new UsuarioNoAutenticadoException();
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
43
7a2eeb9e9bf9 Crear cuenta interna asociada
Nelo@Kenia.neluz.int
parents: 112
diff changeset
44 var identification = new Identification(userName);
112
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 94
diff changeset
45
0bca45e1e664 Pantalla de Perfil donde se puede asociar la cuenta de twitter al usuario existente
Nelo@Kenia.neluz.int
parents: 94
diff changeset
46 var cuenta = _personaRepository.GetCuenta(identification.IdentityProvider, identification.LogonName);
94
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
47 return cuenta != null ? cuenta.Persona : null;
db4b1e2cae49 Cambio del nombre de la clase Ponente a Persona
Nelo@Kenia.neluz.int
parents: 54
diff changeset
48 }
54
3059a5f8930f Code cleanup
nelopauselli
parents: 50
diff changeset
49 }
50
3ebe89c88caa Agregando propiedad al Evento sobre el Usuario que lo crea o que realizó la
nelopauselli
parents:
diff changeset
50 }