/// <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;
                }
            }
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 4
0
        /// <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;
                }
            }
        }