internal domain.sm.User toUserFromDataReader(IDataReader rdr)
{
domain.sm.User user = new domain.sm.User();
if (!rdr.Read())
{
throw new MdoException(MdoExceptionCode.DATA_NO_RECORD_FOR_ID);
}
user.Id = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("USER_ID")));
user.FirstName = rdr.GetString(rdr.GetOrdinal("FIRST_NAME"));
user.LastName = rdr.GetString(rdr.GetOrdinal("LAST_NAME"));
int userType = Convert.ToInt32(rdr.GetString(rdr.GetOrdinal("USER_TYPE")));
if (Enum.IsDefined(typeof(domain.sm.enums.UserTypeEnum), userType))
{
user.UserType = (domain.sm.enums.UserTypeEnum)userType;
}
int statusCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("STATUS")));
if (Enum.IsDefined(typeof(domain.sm.enums.UserStatusEnum), statusCode))
{
user.Status = (domain.sm.enums.UserStatusEnum)statusCode;
}
if (!rdr.IsDBNull(rdr.GetOrdinal("EMAIL_ADDRESS")))
{
user.Email = rdr.GetString(rdr.GetOrdinal("EMAIL_ADDRESS"));
}
user.Oplock = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("OPLOCK")));
user.Active = (rdr.GetDecimal(rdr.GetOrdinal("ACTIVE")) == 1);
if (!rdr.IsDBNull(rdr.GetOrdinal("SSN")))
{
user.Ssn = rdr.GetString(rdr.GetOrdinal("SSN"));
}
if (!rdr.IsDBNull(rdr.GetOrdinal("STATION_NO")))
{
// TBD - should we map this?
rdr.GetString(rdr.GetOrdinal("STATION_NO"));
}
if (!rdr.IsDBNull(rdr.GetOrdinal("DUZ")))
{
// TBD - should we map this
rdr.GetString(rdr.GetOrdinal("DUZ"));
}
int emailNoticeCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("EMAIL_NOTIFICATION")));
if (Enum.IsDefined(typeof(domain.sm.enums.EmailNotificationEnum), emailNoticeCode))
{
user.EmailNotification = (domain.sm.enums.EmailNotificationEnum)emailNoticeCode;
}
int messageFilterCode = Convert.ToInt32(rdr.GetDecimal(rdr.GetOrdinal("DEFAULT_MESSAGE_FILTER")));
if (Enum.IsDefined(typeof(domain.sm.enums.MessageFilterEnum), emailNoticeCode))
{
user.MessageFilter = (domain.sm.enums.MessageFilterEnum)messageFilterCode;
}
if (!rdr.IsDBNull(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION")))
{
user.LastNotification = rdr.GetDateTime(rdr.GetOrdinal("LAST_EMAIL_NOTIFICATION"));
}
return user;
}