MembershipUser GetUserFromReader (DbDataReader reader, string username, object userId)
{
int i = 0;
if (username == null)
i = 1;
if (userId != null)
username = reader.GetString (8);
return new MembershipUser (this.Name, /* XXX is this right? */
(username == null ? reader.GetString (0) : username), /* name */
(userId == null ? reader.GetGuid (8 + i) : userId), /* providerUserKey */
reader.IsDBNull (0 + i) ? null : reader.GetString (0 + i), /* email */
reader.IsDBNull (1 + i) ? null : reader.GetString (1 + i), /* passwordQuestion */
reader.IsDBNull (2 + i) ? null : reader.GetString (2 + i), /* comment */
reader.GetBoolean (3 + i), /* isApproved */
reader.GetBoolean (9 + i), /* isLockedOut */
reader.GetDateTime (4 + i).ToLocalTime (), /* creationDate */
reader.GetDateTime (5 + i).ToLocalTime (), /* lastLoginDate */
reader.GetDateTime (6 + i).ToLocalTime (), /* lastActivityDate */
reader.GetDateTime (7 + i).ToLocalTime (), /* lastPasswordChangedDate */
reader.GetDateTime (10 + i).ToLocalTime () /* lastLockoutDate */);
}