/// <summary> /// Tomamos un Usuario, cambiamos la Persona asociada al mismo, algunas propiedades escalares, eliminamos un perfil /// y agregamos otro. Tambien modificamos la contraseƱa /// Luego de probar este metodo se puede acceder a la app principal y ver que pasa, obviamente ingresando con la /// nueva password /// [[IMPORTANTE]] /// Antes de probar este metodo, asegurarse de haber llamado a CrearUsuarioCompleto() /// </summary> public static void CambiarCompleto() { SecurityServices serv = new SecurityServices(); Usuario user; user = serv.GetUsuarioFromLogin("lsimpson"); var perfiles = from p in DB.Contexto.Perfiles where p.ID == 4 select p; user.Perfiles.RemoveWhere(perf => perf.ID == 2); user.Perfiles.Add(perfiles.Single()); Persona nuevaPersona; // primero chequeamos que la Persona no exista, si no existe la creamos nuevaPersona = (from per in DB.Contexto.Personas where per.Apellido == "Olsen" && per.Nombre == "Mona Penelope" select per).SingleOrDefault(); if (nuevaPersona == null) nuevaPersona = CrearPersonaInternal("Mona Penelope", "Olsen", "*****@*****.**", 78); user.Persona = nuevaPersona; user.EnforceExpiration = true; user.FechaExpiracionPassword = DateTime.Now.AddDays(120); serv.UpdateUsuario(user, "123-lisa"); }
/// <summary> /// Tomamos un Usuario, borramos los perfiles que tiene y agregamos los que no tenia /// Visualizar en SQL Profiler: se veran las dos instrucciones delete y los 2 insert en Usuarios_Perfiles /// [[IMPORTANTE]] /// Antes de probar este metodo, asegurarse de haber llamado a CrearUsuarioCompleto() ya que ahi es donde /// colocamos los perfiles /// </summary> public static void CambiarSoloPerfiles() { SecurityServices serv = new SecurityServices(); Usuario user; // Seguramente no se hace un viaje a la DB, este objeto ya esta en memoria local... user = serv.GetUsuarioFromLogin("lsimpson"); var perfiles = from p in DB.Contexto.Perfiles where p.ID == 1 || p.ID == 4 select p; user.Perfiles.Clear(); user.Perfiles.UnionWith(perfiles); serv.UpdateUsuario(user); }