public override void AddUsersToRoles(string[] usernames, string[] roleNames) { _logger.Debug("{0}.{1}", nameof(GuRoleProvider), nameof(AddUsersToRoles)); try { using (GuProviderContext context = new GuProviderContext()) { foreach (var userName in usernames) { foreach (var roleName in roleNames) { if (!context.NET_GU_PERFILUSUARIO.Any(pu => pu.NET_GU_AUTORIZACION.USUARIO == userName && pu.NET_GU_DESCRIPCIONPERFIL.DESCRIPCION == roleName)) { var ud = context.NET_GU_AUTORIZACION.SingleOrDefault(a => a.USUARIO == userName); var rd = context.NET_GU_DESCRIPCIONPERFIL.SingleOrDefault(b => b.DESCRIPCION == roleName); if (ud == null || rd == null) throw new ArgumentException("Datos no validos"); context.NET_GU_PERFILUSUARIO.Add(new NET_GU_PERFILUSUARIO() { ID_USUARIO = ud.ID_USUARIO, ID_PERFIL = rd.ID_PERFIL, ID_ORGANISMO = 0, FECHA_CREACION = DateTime.Now, FECHA_MODIFICACION = DateTime.Now, NOTAS = string.Empty }); context.SaveChanges(); } } } } } catch (Exception e) { _logger.Error(e, "Error en AddUsersToRoles: "); throw; } }
public override void RemoveUsersFromRoles(string[] usernames, string[] roleNames) { _logger.Debug("{0}.{1}", nameof(GuRoleProvider), nameof(RemoveUsersFromRoles)); try { using (GuProviderContext context = new GuProviderContext()) { foreach (var userName in usernames) { foreach (var roleName in roleNames) { var urd = context.NET_GU_PERFILUSUARIO.SingleOrDefault(pu => pu.NET_GU_AUTORIZACION.USUARIO == userName && pu.NET_GU_DESCRIPCIONPERFIL.DESCRIPCION == roleName); if (urd != null) { context.NET_GU_PERFILUSUARIO.Remove(urd); context.SaveChanges(); } } } } } catch (Exception e) { _logger.Error(e, "Error en RemoveUsersFromRoles: "); throw; } }