public Usuario crearUsuario(Usuario usuario) { OracleConnection conn = null; try { conn = new OracleConnection(this.strCadenaConexion); conn.Open(); } catch { throw new Exception("Error de conexión a la Base de Datos"); } using (OracleCommand cmd = conn.CreateCommand()) { using (OracleTransaction trx = conn.BeginTransaction()) { cmd.Transaction = trx; try { usuario = UsuariosBD.CrearUsuario(cmd, usuario); usuario.Contrasena = Encriptacion.MD5(usuario.Contrasena); int contrasenaResul = UsuariosBD.ActualizarContrasena(cmd, usuario.Id, usuario.Contrasena, usuario.User); if (usuario.Id < 0 && contrasenaResul < 0) { throw new Exception("Ocurrió un error al guardar el usuario"); } if (usuario.Permisos != null) { for (int i = 0; i < usuario.Permisos.Count; i++) { int resultPermXUsr = UsuariosBD.MantenimientoUsuarioXPermiso(cmd, usuario.Id, usuario.Permisos[i].Id, usuario.User, usuario.Permisos[i].Estado); if (resultPermXUsr < 0) { throw new Exception("Ocurrió un error al guardar el usuario"); } } } if (usuario.Perfiles != null) { for (int i = 0; i < usuario.Perfiles.Count; i++) { int resultUserXPerf = UsuariosBD.MantenimientoUsuarioXPerfil(cmd, usuario.Id, usuario.Perfiles[i].Id, usuario.User, usuario.Perfiles[i].Estado); if (resultUserXPerf < 0) { throw new Exception("Ocurrió un error al guardar el usuario"); } } } trx.Commit(); } catch { trx.Rollback(); throw new Exception("Ocurrió un error al guardar el usuario"); } } } CerrarConexion(conn); return(usuario); }