public override bool DeleteUser(string username, bool deleteAllRelatedData)
        {
            if (!Initialized)
            {
                return(_prevProvider.DeleteUser(username, deleteAllRelatedData));
            }

            int userid = GetUserId(username);

            if (userid < 0)
            {
                return(false);
            }

            using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
            {
                if (deleteAllRelatedData)
                {
                    return(dbConn.ExecuteInTransaction(
                               new List <Tuple <string, object[]> >()
                    {
                        new Tuple <string, object[]>(string.Format("delete from {0} where {1}=?;", UserTableName, UserIdColumn), new object [] { userid }),
                        new Tuple <string, object[]>(string.Format("delete from {0} where userid=?;", _oauthMembershipTable), new object [] { userid }),
                        new Tuple <string, object[]>(string.Format("delete from {0} where userid=?;", _membershipTable), new object [] { userid }),
                        new Tuple <string, object[]>(string.Format("delete from {0} where userid=?;", _userInRolesTable), new object [] { userid })
                    }));
                }
                else
                {
                    return(dbConn.ExecuteNonQuery(string.Format("delete from {0} where {1}=?;", UserTableName, UserIdColumn), userid) > 0);
                }
            }
        }
    public override bool DeleteUser(string username, bool deleteAllRelatedData)
    {
      if (!Initialized)
        return _prevProvider.DeleteUser(username, deleteAllRelatedData);

      int userid = GetUserId(username);
      if (userid < 0)
        return false;

      using (MySqlDatabaseWrapper dbConn = new MySqlDatabaseWrapper(GetConnectionString()))
      {
        if (deleteAllRelatedData)
        {
          return dbConn.ExecuteInTransaction(
              new List<Tuple<string, object[]>>() 
                    {
                        new Tuple<string, object[]>(string.Format("delete from {0} where {1}=?;", UserTableName, UserIdColumn), new object [] { userid }),
                        new Tuple<string, object[]>(string.Format("delete from {0} where userid=?;", _oauthMembershipTable), new object [] { userid }),
                        new Tuple<string, object[]>(string.Format("delete from {0} where userid=?;", _membershipTable), new object [] { userid }),
                        new Tuple<string, object[]>(string.Format("delete from {0} where userid=?;", _userInRolesTable), new object [] { userid })
                    });
        }
        else
        {
          return (dbConn.ExecuteNonQuery(string.Format("delete from {0} where {1}=?;", UserTableName, UserIdColumn), userid) > 0);
        }
      }
    }