Esempio n. 1
0
        //---------------------------- Private -----------------------------------------------
        //TODO: optimize - bad array copy !
        static CdrAggregateRow[] map(CdrAggregate[] pCdrAggregates)
        {
            var _cdrAggrRows = new CdrAggregateRow[pCdrAggregates.Length];

            for (int _i = 0; _i < pCdrAggregates.Length; _i++)
            {
                _cdrAggrRows[_i]                   = new CdrAggregateRow();
                _cdrAggrRows[_i].Date_hour         = pCdrAggregates[_i].DateHour;
                _cdrAggrRows[_i].Node_id           = pCdrAggregates[_i].NodeID;
                _cdrAggrRows[_i].Access_number     = pCdrAggregates[_i].AccessNumber;
                _cdrAggrRows[_i].Orig_end_point_IP = pCdrAggregates[_i].OrigIP;
                _cdrAggrRows[_i].Orig_end_point_id = pCdrAggregates[_i].OrigId;
                _cdrAggrRows[_i].Customer_acct_id  = pCdrAggregates[_i].CustomerAcctId;
                _cdrAggrRows[_i].Customer_route_id = pCdrAggregates[_i].CustomerRouteId;
                _cdrAggrRows[_i].Carrier_acct_id   = pCdrAggregates[_i].CarrierAcctId;
                _cdrAggrRows[_i].Carrier_route_id  = pCdrAggregates[_i].CarrierRouteId;
                _cdrAggrRows[_i].Term_end_point_IP = pCdrAggregates[_i].TermIP;
                _cdrAggrRows[_i].Term_end_point_id = pCdrAggregates[_i].TermId;

                _cdrAggrRows[_i].Calls_attempted           = pCdrAggregates[_i].CallsAttempted;
                _cdrAggrRows[_i].Calls_completed           = pCdrAggregates[_i].CallsCompleted;
                _cdrAggrRows[_i].Setup_seconds             = pCdrAggregates[_i].SetupSeconds;
                _cdrAggrRows[_i].Alert_seconds             = pCdrAggregates[_i].AlertSeconds;
                _cdrAggrRows[_i].Connected_seconds         = pCdrAggregates[_i].ConnectedSeconds;
                _cdrAggrRows[_i].Connected_minutes         = pCdrAggregates[_i].ConnectedMinutes;
                _cdrAggrRows[_i].Carrier_cost              = pCdrAggregates[_i].CarrierCost;
                _cdrAggrRows[_i].Carrier_rounded_minutes   = pCdrAggregates[_i].CarrierRoundedMinutes;
                _cdrAggrRows[_i].Wholesale_price           = pCdrAggregates[_i].WholesalePrice;
                _cdrAggrRows[_i].Wholesale_rounded_minutes = pCdrAggregates[_i].WholesaleRoundedMinutes;
                _cdrAggrRows[_i].End_user_price            = pCdrAggregates[_i].EndUserPrice;
                _cdrAggrRows[_i].End_user_rounded_minutes  = pCdrAggregates[_i].EndUserRoundedMinutes;
            }
            return(_cdrAggrRows);
        }
        /// <summary>
        /// Converts <see cref="System.Data.DataRow"/> to <see cref="CdrAggregateRow"/>.
        /// </summary>
        /// <param name="row">The <see cref="System.Data.DataRow"/> object to be mapped.</param>
        /// <returns>A reference to the <see cref="CdrAggregateRow"/> object.</returns>
        protected virtual CdrAggregateRow MapRow(DataRow row)
        {
            CdrAggregateRow mappedObject = new CdrAggregateRow();
            DataTable       dataTable    = row.Table;
            DataColumn      dataColumn;

            // Column "Date_hour"
            dataColumn = dataTable.Columns["Date_hour"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Date_hour = (int)row[dataColumn];
            }
            // Column "Node_id"
            dataColumn = dataTable.Columns["Node_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Node_id = (short)row[dataColumn];
            }
            // Column "Orig_end_point_IP"
            dataColumn = dataTable.Columns["Orig_end_point_IP"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Orig_end_point_IP = (int)row[dataColumn];
            }
            // Column "Orig_end_point_id"
            dataColumn = dataTable.Columns["Orig_end_point_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Orig_end_point_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 "Customer_route_id"
            dataColumn = dataTable.Columns["Customer_route_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Customer_route_id = (int)row[dataColumn];
            }
            // Column "Term_end_point_IP"
            dataColumn = dataTable.Columns["Term_end_point_IP"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Term_end_point_IP = (int)row[dataColumn];
            }
            // Column "Term_end_point_id"
            dataColumn = dataTable.Columns["Term_end_point_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Term_end_point_id = (short)row[dataColumn];
            }
            // Column "Calls_attempted"
            dataColumn = dataTable.Columns["Calls_attempted"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Calls_attempted = (int)row[dataColumn];
            }
            // Column "Calls_completed"
            dataColumn = dataTable.Columns["Calls_completed"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Calls_completed = (int)row[dataColumn];
            }
            // Column "Setup_seconds"
            dataColumn = dataTable.Columns["Setup_seconds"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Setup_seconds = (int)row[dataColumn];
            }
            // Column "Alert_seconds"
            dataColumn = dataTable.Columns["Alert_seconds"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Alert_seconds = (int)row[dataColumn];
            }
            // Column "Connected_seconds"
            dataColumn = dataTable.Columns["Connected_seconds"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Connected_seconds = (int)row[dataColumn];
            }
            // Column "Connected_minutes"
            dataColumn = dataTable.Columns["Connected_minutes"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Connected_minutes = (decimal)row[dataColumn];
            }
            // Column "Carrier_cost"
            dataColumn = dataTable.Columns["Carrier_cost"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Carrier_cost = (decimal)row[dataColumn];
            }
            // Column "Carrier_rounded_minutes"
            dataColumn = dataTable.Columns["Carrier_rounded_minutes"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Carrier_rounded_minutes = (decimal)row[dataColumn];
            }
            // Column "Wholesale_price"
            dataColumn = dataTable.Columns["Wholesale_price"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Wholesale_price = (decimal)row[dataColumn];
            }
            // Column "Wholesale_rounded_minutes"
            dataColumn = dataTable.Columns["Wholesale_rounded_minutes"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Wholesale_rounded_minutes = (decimal)row[dataColumn];
            }
            // Column "End_user_price"
            dataColumn = dataTable.Columns["End_user_price"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.End_user_price = (decimal)row[dataColumn];
            }
            // Column "End_user_rounded_minutes"
            dataColumn = dataTable.Columns["End_user_rounded_minutes"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.End_user_rounded_minutes = (decimal)row[dataColumn];
            }
            // Column "Carrier_acct_id"
            dataColumn = dataTable.Columns["Carrier_acct_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Carrier_acct_id = (short)row[dataColumn];
            }
            // Column "Carrier_route_id"
            dataColumn = dataTable.Columns["Carrier_route_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Carrier_route_id = (int)row[dataColumn];
            }
            // Column "Access_number"
            dataColumn = dataTable.Columns["Access_number"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Access_number = (long)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="CdrAggregateRow"/> objects.</returns>
        protected virtual CdrAggregateRow[] 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 date_hourColumnIndex                 = reader.GetOrdinal("date_hour");
            int node_idColumnIndex                   = reader.GetOrdinal("node_id");
            int orig_end_point_IPColumnIndex         = reader.GetOrdinal("orig_end_point_IP");
            int orig_end_point_idColumnIndex         = reader.GetOrdinal("orig_end_point_id");
            int customer_acct_idColumnIndex          = reader.GetOrdinal("customer_acct_id");
            int customer_route_idColumnIndex         = reader.GetOrdinal("customer_route_id");
            int term_end_point_IPColumnIndex         = reader.GetOrdinal("term_end_point_IP");
            int term_end_point_idColumnIndex         = reader.GetOrdinal("term_end_point_id");
            int calls_attemptedColumnIndex           = reader.GetOrdinal("calls_attempted");
            int calls_completedColumnIndex           = reader.GetOrdinal("calls_completed");
            int setup_secondsColumnIndex             = reader.GetOrdinal("setup_seconds");
            int alert_secondsColumnIndex             = reader.GetOrdinal("alert_seconds");
            int connected_secondsColumnIndex         = reader.GetOrdinal("connected_seconds");
            int connected_minutesColumnIndex         = reader.GetOrdinal("connected_minutes");
            int carrier_costColumnIndex              = reader.GetOrdinal("carrier_cost");
            int carrier_rounded_minutesColumnIndex   = reader.GetOrdinal("carrier_rounded_minutes");
            int wholesale_priceColumnIndex           = reader.GetOrdinal("wholesale_price");
            int wholesale_rounded_minutesColumnIndex = reader.GetOrdinal("wholesale_rounded_minutes");
            int end_user_priceColumnIndex            = reader.GetOrdinal("end_user_price");
            int end_user_rounded_minutesColumnIndex  = reader.GetOrdinal("end_user_rounded_minutes");
            int carrier_acct_idColumnIndex           = reader.GetOrdinal("carrier_acct_id");
            int carrier_route_idColumnIndex          = reader.GetOrdinal("carrier_route_id");
            int access_numberColumnIndex             = reader.GetOrdinal("access_number");

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

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

                    record.Date_hour                 = Convert.ToInt32(reader.GetValue(date_hourColumnIndex));
                    record.Node_id                   = Convert.ToInt16(reader.GetValue(node_idColumnIndex));
                    record.Orig_end_point_IP         = Convert.ToInt32(reader.GetValue(orig_end_point_IPColumnIndex));
                    record.Orig_end_point_id         = Convert.ToInt16(reader.GetValue(orig_end_point_idColumnIndex));
                    record.Customer_acct_id          = Convert.ToInt16(reader.GetValue(customer_acct_idColumnIndex));
                    record.Customer_route_id         = Convert.ToInt32(reader.GetValue(customer_route_idColumnIndex));
                    record.Term_end_point_IP         = Convert.ToInt32(reader.GetValue(term_end_point_IPColumnIndex));
                    record.Term_end_point_id         = Convert.ToInt16(reader.GetValue(term_end_point_idColumnIndex));
                    record.Calls_attempted           = Convert.ToInt32(reader.GetValue(calls_attemptedColumnIndex));
                    record.Calls_completed           = Convert.ToInt32(reader.GetValue(calls_completedColumnIndex));
                    record.Setup_seconds             = Convert.ToInt32(reader.GetValue(setup_secondsColumnIndex));
                    record.Alert_seconds             = Convert.ToInt32(reader.GetValue(alert_secondsColumnIndex));
                    record.Connected_seconds         = Convert.ToInt32(reader.GetValue(connected_secondsColumnIndex));
                    record.Connected_minutes         = Convert.ToDecimal(reader.GetValue(connected_minutesColumnIndex));
                    record.Carrier_cost              = Convert.ToDecimal(reader.GetValue(carrier_costColumnIndex));
                    record.Carrier_rounded_minutes   = Convert.ToDecimal(reader.GetValue(carrier_rounded_minutesColumnIndex));
                    record.Wholesale_price           = Convert.ToDecimal(reader.GetValue(wholesale_priceColumnIndex));
                    record.Wholesale_rounded_minutes = Convert.ToDecimal(reader.GetValue(wholesale_rounded_minutesColumnIndex));
                    record.End_user_price            = Convert.ToDecimal(reader.GetValue(end_user_priceColumnIndex));
                    record.End_user_rounded_minutes  = Convert.ToDecimal(reader.GetValue(end_user_rounded_minutesColumnIndex));
                    record.Carrier_acct_id           = Convert.ToInt16(reader.GetValue(carrier_acct_idColumnIndex));
                    record.Carrier_route_id          = Convert.ToInt32(reader.GetValue(carrier_route_idColumnIndex));
                    record.Access_number             = Convert.ToInt64(reader.GetValue(access_numberColumnIndex));

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

            totalRecordCount = 0 == totalRecordCount ? ri + startIndex : -1;
            return((CdrAggregateRow[])(recordList.ToArray(typeof(CdrAggregateRow))));
        }
        /// <summary>
        /// Adds a new record into the <c>CdrAggregate</c> table.
        /// </summary>
        /// <param name="value">The <see cref="CdrAggregateRow"/> object to be inserted.</param>
        public virtual void Insert(CdrAggregateRow value)
        {
            string sqlStr = "INSERT INTO [dbo].[CdrAggregate] (" +
                            "[date_hour], " +
                            "[node_id], " +
                            "[orig_end_point_IP], " +
                            "[orig_end_point_id], " +
                            "[customer_acct_id], " +
                            "[customer_route_id], " +
                            "[term_end_point_IP], " +
                            "[term_end_point_id], " +
                            "[calls_attempted], " +
                            "[calls_completed], " +
                            "[setup_seconds], " +
                            "[alert_seconds], " +
                            "[connected_seconds], " +
                            "[connected_minutes], " +
                            "[carrier_cost], " +
                            "[carrier_rounded_minutes], " +
                            "[wholesale_price], " +
                            "[wholesale_rounded_minutes], " +
                            "[end_user_price], " +
                            "[end_user_rounded_minutes], " +
                            "[carrier_acct_id], " +
                            "[carrier_route_id], " +
                            "[access_number]" +
                            ") VALUES (" +
                            _db.CreateSqlParameterName("Date_hour") + ", " +
                            _db.CreateSqlParameterName("Node_id") + ", " +
                            _db.CreateSqlParameterName("Orig_end_point_IP") + ", " +
                            _db.CreateSqlParameterName("Orig_end_point_id") + ", " +
                            _db.CreateSqlParameterName("Customer_acct_id") + ", " +
                            _db.CreateSqlParameterName("Customer_route_id") + ", " +
                            _db.CreateSqlParameterName("Term_end_point_IP") + ", " +
                            _db.CreateSqlParameterName("Term_end_point_id") + ", " +
                            _db.CreateSqlParameterName("Calls_attempted") + ", " +
                            _db.CreateSqlParameterName("Calls_completed") + ", " +
                            _db.CreateSqlParameterName("Setup_seconds") + ", " +
                            _db.CreateSqlParameterName("Alert_seconds") + ", " +
                            _db.CreateSqlParameterName("Connected_seconds") + ", " +
                            _db.CreateSqlParameterName("Connected_minutes") + ", " +
                            _db.CreateSqlParameterName("Carrier_cost") + ", " +
                            _db.CreateSqlParameterName("Carrier_rounded_minutes") + ", " +
                            _db.CreateSqlParameterName("Wholesale_price") + ", " +
                            _db.CreateSqlParameterName("Wholesale_rounded_minutes") + ", " +
                            _db.CreateSqlParameterName("End_user_price") + ", " +
                            _db.CreateSqlParameterName("End_user_rounded_minutes") + ", " +
                            _db.CreateSqlParameterName("Carrier_acct_id") + ", " +
                            _db.CreateSqlParameterName("Carrier_route_id") + ", " +
                            _db.CreateSqlParameterName("Access_number") + ")";
            IDbCommand cmd = _db.CreateCommand(sqlStr);

            AddParameter(cmd, "Date_hour", value.Date_hour);
            AddParameter(cmd, "Node_id", value.Node_id);
            AddParameter(cmd, "Orig_end_point_IP", value.Orig_end_point_IP);
            AddParameter(cmd, "Orig_end_point_id", value.Orig_end_point_id);
            AddParameter(cmd, "Customer_acct_id", value.Customer_acct_id);
            AddParameter(cmd, "Customer_route_id", value.Customer_route_id);
            AddParameter(cmd, "Term_end_point_IP", value.Term_end_point_IP);
            AddParameter(cmd, "Term_end_point_id", value.Term_end_point_id);
            AddParameter(cmd, "Calls_attempted", value.Calls_attempted);
            AddParameter(cmd, "Calls_completed", value.Calls_completed);
            AddParameter(cmd, "Setup_seconds", value.Setup_seconds);
            AddParameter(cmd, "Alert_seconds", value.Alert_seconds);
            AddParameter(cmd, "Connected_seconds", value.Connected_seconds);
            AddParameter(cmd, "Connected_minutes", value.Connected_minutes);
            AddParameter(cmd, "Carrier_cost", value.Carrier_cost);
            AddParameter(cmd, "Carrier_rounded_minutes", value.Carrier_rounded_minutes);
            AddParameter(cmd, "Wholesale_price", value.Wholesale_price);
            AddParameter(cmd, "Wholesale_rounded_minutes", value.Wholesale_rounded_minutes);
            AddParameter(cmd, "End_user_price", value.End_user_price);
            AddParameter(cmd, "End_user_rounded_minutes", value.End_user_rounded_minutes);
            AddParameter(cmd, "Carrier_acct_id", value.Carrier_acct_id);
            AddParameter(cmd, "Carrier_route_id", value.Carrier_route_id);
            AddParameter(cmd, "Access_number", value.Access_number);
            cmd.ExecuteNonQuery();
        }