/// <summary> /// Reads the values from an <see cref="IDataReader"/> and assigns the read values to this /// object's properties. Unlike ReadValues(), this method not only doesn't require /// all values to be in the <see cref="IDataReader"/>, but also does not require the values in /// the <see cref="IDataReader"/> to be a defined field for the table this class represents. /// Because of this, you need to be careful when using this method because values /// can easily be skipped without any indication. /// </summary> /// <param name="source">The object to add the extension method to.</param> /// <param name="dataRecord">The <see cref="IDataReader"/> to read the values from. Must already be ready to be read from.</param> public static void TryReadValues(this CharacterQuestStatusTable source, System.Data.IDataRecord dataRecord) { for (int i = 0; i < dataRecord.FieldCount; i++) { switch (dataRecord.GetName(i)) { case "character_id": source.CharacterID = (DemoGame.CharacterID)(DemoGame.CharacterID) dataRecord.GetInt32(i); break; case "completed_on": source.CompletedOn = (System.Nullable <System.DateTime>)(System.Nullable <System.DateTime>)(dataRecord.IsDBNull(i) ? (System.Nullable <System.DateTime>)null : dataRecord.GetDateTime(i)); break; case "quest_id": source.QuestID = (NetGore.Features.Quests.QuestID)(NetGore.Features.Quests.QuestID) dataRecord.GetUInt16(i); break; case "started_on": source.StartedOn = (System.DateTime)(System.DateTime) dataRecord.GetDateTime(i); break; } } }
/// <summary> /// Reads the values from an <see cref="IDataRecord"/> and assigns the read values to this /// object's properties. The database column's name is used to as the key, so the value /// will not be found if any aliases are used or not all columns were selected. /// </summary> /// <param name="source">The object to add the extension method to.</param> /// <param name="dataRecord">The <see cref="IDataRecord"/> to read the values from. Must already be ready to be read from.</param> public static void ReadValues(this CharacterQuestStatusTable source, IDataRecord dataRecord) { Int32 i; i = dataRecord.GetOrdinal("character_id"); source.CharacterID = (CharacterID)dataRecord.GetInt32(i); i = dataRecord.GetOrdinal("completed_on"); source.CompletedOn = (dataRecord.IsDBNull(i) ? (DateTime?)null : dataRecord.GetDateTime(i)); i = dataRecord.GetOrdinal("quest_id"); source.QuestID = (QuestID)dataRecord.GetUInt16(i); i = dataRecord.GetOrdinal("started_on"); source.StartedOn = dataRecord.GetDateTime(i); }
/// <summary> /// Reads the values from an <see cref="IDataRecord"/> and assigns the read values to this /// object's properties. The database column's name is used to as the key, so the value /// will not be found if any aliases are used or not all columns were selected. /// </summary> /// <param name="source">The object to add the extension method to.</param> /// <param name="dataRecord">The <see cref="IDataRecord"/> to read the values from. Must already be ready to be read from.</param> public static void ReadValues(this CharacterQuestStatusTable source, System.Data.IDataRecord dataRecord) { System.Int32 i; i = dataRecord.GetOrdinal("character_id"); source.CharacterID = (DemoGame.CharacterID)(DemoGame.CharacterID) dataRecord.GetInt32(i); i = dataRecord.GetOrdinal("completed_on"); source.CompletedOn = (System.Nullable <System.DateTime>)(System.Nullable <System.DateTime>)(dataRecord.IsDBNull(i) ? (System.Nullable <System.DateTime>)null : dataRecord.GetDateTime(i)); i = dataRecord.GetOrdinal("quest_id"); source.QuestID = (NetGore.Features.Quests.QuestID)(NetGore.Features.Quests.QuestID) dataRecord.GetUInt16(i); i = dataRecord.GetOrdinal("started_on"); source.StartedOn = (System.DateTime)(System.DateTime) dataRecord.GetDateTime(i); }
/// <summary> /// Reads the values from an <see cref="IDataReader"/> and assigns the read values to this /// object's properties. Unlike ReadValues(), this method not only doesn't require /// all values to be in the <see cref="IDataReader"/>, but also does not require the values in /// the <see cref="IDataReader"/> to be a defined field for the table this class represents. /// Because of this, you need to be careful when using this method because values /// can easily be skipped without any indication. /// </summary> /// <param name="source">The object to add the extension method to.</param> /// <param name="dataRecord">The <see cref="IDataReader"/> to read the values from. Must already be ready to be read from.</param> public static void TryReadValues(this CharacterQuestStatusTable source, IDataRecord dataRecord) { for (var i = 0; i < dataRecord.FieldCount; i++) { switch (dataRecord.GetName(i)) { case "character_id": source.CharacterID = (CharacterID)dataRecord.GetInt32(i); break; case "completed_on": source.CompletedOn = (dataRecord.IsDBNull(i) ? (DateTime?)null : dataRecord.GetDateTime(i)); break; case "quest_id": source.QuestID = (QuestID)dataRecord.GetUInt16(i); break; case "started_on": source.StartedOn = dataRecord.GetDateTime(i); break; } } }