private QuestionModel ParseQuestionFromReader(SqlDataReader reader) { QuestionModel question = new QuestionModel(); question.ExerciseId = (int)reader["EX_ID"]; question.QuestionId = (int)reader["EXQ_ID"]; question.Instructions = (string)reader["EXQ_INSTRUCTIONS_TEMPLATE"]; question.AnswerTemplate = (string)reader["EXQ_ANSWERS_TEMPLATE"]; question.Order = (int)reader["EXQ_ORDER"]; question.Description = (string)reader["EXQ_DESCRIPTION"]; question.Hint = reader["EXQ_HINT"] == DBNull.Value ? "No hint available" : (string)reader["EXQ_HINT"]; if (DAHelpers.HasColumn(reader, "Answered")) { question.Answered = (Boolean)reader["Answered"]; } if (DAHelpers.HasColumn(reader, "AnsweredDate")) { object sqlDateTime = reader["AnsweredDate"]; question.AnsweredDate = (sqlDateTime == System.DBNull.Value) ? (DateTime?)null : Convert.ToDateTime(sqlDateTime); } question.StartingSql = DAHelpers.StringFromReader(reader, "EXQ_STARTING_SQL"); question.ExerciseQuestionIdGuid = (Guid)reader["EXQ_ID_GUID"]; question.CreatedDate = DAHelpers.DateTimeFromReader(reader, "EXQ_CREATED_DATE"); question.CreatedBy = DAHelpers.StringFromReader(reader, "EXQ_CREATED_BY"); question.UpdatedDate = DAHelpers.NullableDateTimeFromReader(reader, "EXQ_UPDATED_DATE"); question.UpdatedBy = DAHelpers.NullableStringFromReader(reader, "EXQ_UPDATED_BY"); question.ExerciseQuestionType = (int)reader["EXQ_TYPE"]; return(question); }