/// <summary>
        /// Adds a new record into the <c>InventoryUsage</c> table.
        /// </summary>
        /// <param name="value">The <see cref="InventoryUsageRow"/> object to be inserted.</param>
        public virtual void Insert(InventoryUsageRow value)
        {
            string sqlStr = "INSERT INTO [dbo].[InventoryUsage] (" +
                            "[service_id], " +
                            "[customer_acct_id], " +
                            "[timestamp], " +
                            "[first_used], " +
                            "[total_used], " +
                            "[balance_depleted], " +
                            "[expired]" +
                            ") VALUES (" +
                            _db.CreateSqlParameterName("Service_id") + ", " +
                            _db.CreateSqlParameterName("Customer_acct_id") + ", " +
                            _db.CreateSqlParameterName("Timestamp") + ", " +
                            _db.CreateSqlParameterName("First_used") + ", " +
                            _db.CreateSqlParameterName("Total_used") + ", " +
                            _db.CreateSqlParameterName("Balance_depleted") + ", " +
                            _db.CreateSqlParameterName("Expired") + ")";
            IDbCommand cmd = _db.CreateCommand(sqlStr);

            AddParameter(cmd, "Service_id", value.Service_id);
            AddParameter(cmd, "Customer_acct_id", value.Customer_acct_id);
            AddParameter(cmd, "Timestamp", value.Timestamp);
            AddParameter(cmd, "First_used", value.First_used);
            AddParameter(cmd, "Total_used", value.Total_used);
            AddParameter(cmd, "Balance_depleted", value.Balance_depleted);
            AddParameter(cmd, "Expired", value.Expired);
            cmd.ExecuteNonQuery();
        }
 void saveInvetoryStats(DateTime pDateTime, int pTotalUsed, int pFirstUsed, int pDepleted, int pExpired)
 {
     using (var _db = new Rbr_Db()) {
         var _inventoryUsageRow = new InventoryUsageRow {
             Service_id = ServiceId, Customer_acct_id = Id, Timestamp = pDateTime, Total_used = pTotalUsed, First_used = pFirstUsed, Balance_depleted = pDepleted, Expired = pExpired
         };
         _db.InventoryUsageCollection.Insert(_inventoryUsageRow);
     }
 }
        /// <summary>
        /// Converts <see cref="System.Data.DataRow"/> to <see cref="InventoryUsageRow"/>.
        /// </summary>
        /// <param name="row">The <see cref="System.Data.DataRow"/> object to be mapped.</param>
        /// <returns>A reference to the <see cref="InventoryUsageRow"/> object.</returns>
        protected virtual InventoryUsageRow MapRow(DataRow row)
        {
            InventoryUsageRow mappedObject = new InventoryUsageRow();
            DataTable         dataTable    = row.Table;
            DataColumn        dataColumn;

            // Column "Service_id"
            dataColumn = dataTable.Columns["Service_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Service_id = (short)row[dataColumn];
            }
            // Column "Customer_acct_id"
            dataColumn = dataTable.Columns["Customer_acct_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Customer_acct_id = (short)row[dataColumn];
            }
            // Column "Timestamp"
            dataColumn = dataTable.Columns["Timestamp"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Timestamp = (System.DateTime)row[dataColumn];
            }
            // Column "First_used"
            dataColumn = dataTable.Columns["First_used"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.First_used = (int)row[dataColumn];
            }
            // Column "Total_used"
            dataColumn = dataTable.Columns["Total_used"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Total_used = (int)row[dataColumn];
            }
            // Column "Balance_depleted"
            dataColumn = dataTable.Columns["Balance_depleted"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Balance_depleted = (int)row[dataColumn];
            }
            // Column "Expired"
            dataColumn = dataTable.Columns["Expired"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Expired = (int)row[dataColumn];
            }
            return(mappedObject);
        }
        /// <summary>
        /// Reads data from the provided data reader and returns
        /// an array of mapped objects.
        /// </summary>
        /// <param name="reader">The <see cref="System.Data.IDataReader"/> object to read data from the table.</param>
        /// <param name="startIndex">The index of the first record to map.</param>
        /// <param name="length">The number of records to map.</param>
        /// <param name="totalRecordCount">A reference parameter that returns the total number
        /// of records in the reader object if 0 was passed into the method; otherwise it returns -1.</param>
        /// <returns>An array of <see cref="InventoryUsageRow"/> objects.</returns>
        protected virtual InventoryUsageRow[] MapRecords(IDataReader reader,
                                                         int startIndex, int length, ref int totalRecordCount)
        {
            if (0 > startIndex)
            {
                throw new ArgumentOutOfRangeException("startIndex", startIndex, "StartIndex cannot be less than zero.");
            }
            if (0 > length)
            {
                throw new ArgumentOutOfRangeException("length", length, "Length cannot be less than zero.");
            }

            int service_idColumnIndex       = reader.GetOrdinal("service_id");
            int customer_acct_idColumnIndex = reader.GetOrdinal("customer_acct_id");
            int timestampColumnIndex        = reader.GetOrdinal("timestamp");
            int first_usedColumnIndex       = reader.GetOrdinal("first_used");
            int total_usedColumnIndex       = reader.GetOrdinal("total_used");
            int balance_depletedColumnIndex = reader.GetOrdinal("balance_depleted");
            int expiredColumnIndex          = reader.GetOrdinal("expired");

            System.Collections.ArrayList recordList = new System.Collections.ArrayList();
            int ri = -startIndex;

            while (reader.Read())
            {
                ri++;
                if (ri > 0 && ri <= length)
                {
                    InventoryUsageRow record = new InventoryUsageRow();
                    recordList.Add(record);

                    record.Service_id       = Convert.ToInt16(reader.GetValue(service_idColumnIndex));
                    record.Customer_acct_id = Convert.ToInt16(reader.GetValue(customer_acct_idColumnIndex));
                    record.Timestamp        = Convert.ToDateTime(reader.GetValue(timestampColumnIndex));
                    record.First_used       = Convert.ToInt32(reader.GetValue(first_usedColumnIndex));
                    record.Total_used       = Convert.ToInt32(reader.GetValue(total_usedColumnIndex));
                    record.Balance_depleted = Convert.ToInt32(reader.GetValue(balance_depletedColumnIndex));
                    record.Expired          = Convert.ToInt32(reader.GetValue(expiredColumnIndex));

                    if (ri == length && 0 != totalRecordCount)
                    {
                        break;
                    }
                }
            }

            totalRecordCount = 0 == totalRecordCount ? ri + startIndex : -1;
            return((InventoryUsageRow[])(recordList.ToArray(typeof(InventoryUsageRow))));
        }
        /// <summary>
        /// Updates a record in the <c>InventoryUsage</c> table.
        /// </summary>
        /// <param name="value">The <see cref="InventoryUsageRow"/>
        /// object used to update the table record.</param>
        /// <returns>true if the record was updated; otherwise, false.</returns>
        public virtual bool Update(InventoryUsageRow value)
        {
            string sqlStr = "UPDATE [dbo].[InventoryUsage] SET " +
                            "[first_used]=" + _db.CreateSqlParameterName("First_used") + ", " +
                            "[total_used]=" + _db.CreateSqlParameterName("Total_used") + ", " +
                            "[balance_depleted]=" + _db.CreateSqlParameterName("Balance_depleted") + ", " +
                            "[expired]=" + _db.CreateSqlParameterName("Expired") +
                            " WHERE " +
                            "[service_id]=" + _db.CreateSqlParameterName("Service_id") + " AND " +
                            "[customer_acct_id]=" + _db.CreateSqlParameterName("Customer_acct_id") + " AND " +
                            "[timestamp]=" + _db.CreateSqlParameterName("Timestamp");
            IDbCommand cmd = _db.CreateCommand(sqlStr);

            AddParameter(cmd, "First_used", value.First_used);
            AddParameter(cmd, "Total_used", value.Total_used);
            AddParameter(cmd, "Balance_depleted", value.Balance_depleted);
            AddParameter(cmd, "Expired", value.Expired);
            AddParameter(cmd, "Service_id", value.Service_id);
            AddParameter(cmd, "Customer_acct_id", value.Customer_acct_id);
            AddParameter(cmd, "Timestamp", value.Timestamp);
            return(0 != cmd.ExecuteNonQuery());
        }
 /// <summary>
 /// Deletes the specified object from the <c>InventoryUsage</c> table.
 /// </summary>
 /// <param name="value">The <see cref="InventoryUsageRow"/> object to delete.</param>
 /// <returns>true if the record was deleted; otherwise, false.</returns>
 public bool Delete(InventoryUsageRow value)
 {
     return(DeleteByPrimaryKey(value.Service_id, value.Customer_acct_id, value.Timestamp));
 }