示例#1
0
        /// <summary>
        /// Updates a record in the <c>CarrierAcct</c> table.
        /// </summary>
        /// <param name="value">The <see cref="CarrierAcctRow"/>
        /// object used to update the table record.</param>
        /// <returns>true if the record was updated; otherwise, false.</returns>
        public virtual bool Update(CarrierAcctRow value)
        {
            string sqlStr = "UPDATE [dbo].[CarrierAcct] SET " +
                            "[name]=" + _db.CreateSqlParameterName("Name") + ", " +
                            "[status]=" + _db.CreateSqlParameterName("Status") + ", " +
                            "[rating_type]=" + _db.CreateSqlParameterName("Rating_type") + ", " +
                            "[prefix_out]=" + _db.CreateSqlParameterName("Prefix_out") + ", " +
                            "[strip_1plus]=" + _db.CreateSqlParameterName("Strip_1plus") + ", " +
                            "[intl_dial_code]=" + _db.CreateSqlParameterName("Intl_dial_code") + ", " +
                            "[partner_id]=" + _db.CreateSqlParameterName("Partner_id") + ", " +
                            "[calling_plan_id]=" + _db.CreateSqlParameterName("Calling_plan_id") + ", " +
                            "[max_call_length]=" + _db.CreateSqlParameterName("Max_call_length") +
                            " WHERE " +
                            "[carrier_acct_id]=" + _db.CreateSqlParameterName("Carrier_acct_id");
            IDbCommand cmd = _db.CreateCommand(sqlStr);

            AddParameter(cmd, "Name", value.Name);
            AddParameter(cmd, "Status", value.Status);
            AddParameter(cmd, "Rating_type", value.Rating_type);
            AddParameter(cmd, "Prefix_out", value.Prefix_out);
            AddParameter(cmd, "Strip_1plus", value.Strip_1plus);
            AddParameter(cmd, "Intl_dial_code", value.Intl_dial_code);
            AddParameter(cmd, "Partner_id", value.Partner_id);
            AddParameter(cmd, "Calling_plan_id", value.Calling_plan_id);
            AddParameter(cmd, "Max_call_length", value.Max_call_length);
            AddParameter(cmd, "Carrier_acct_id", value.Carrier_acct_id);
            return(0 != cmd.ExecuteNonQuery());
        }
示例#2
0
        static CarrierAcctDto mapToCarrierAcct(CarrierAcctRow pCarrierAcctRow, PartnerDto pPartner, CallingPlanDto pCallingPlan)
        {
            if (pCarrierAcctRow == null)
            {
                return(null);
            }
            if (pPartner == null)
            {
                return(null);
            }
            if (pCallingPlan == null)
            {
                return(null);
            }

            var _carrierAcct = new CarrierAcctDto
            {
                CarrierAcctId = pCarrierAcctRow.Carrier_acct_id,
                IntlDialCode  = pCarrierAcctRow.Intl_dial_code,
                Name          = pCarrierAcctRow.Name,
                Strip1Plus    = pCarrierAcctRow.Strip1plus,
                PrefixOut     = pCarrierAcctRow.Prefix_out,
                Status        = pCarrierAcctRow.AccountStatus,
                RatingType    = pCarrierAcctRow.RatingType,
                MaxCallLength = pCarrierAcctRow.MaxCallLength,
                Partner       = pPartner,
                CallingPlan   = pCallingPlan
            };

            return(_carrierAcct);
        }
示例#3
0
        /// <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="CarrierAcctRow"/> objects.</returns>
        protected virtual CarrierAcctRow[] 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 carrier_acct_idColumnIndex = reader.GetOrdinal("carrier_acct_id");
            int nameColumnIndex            = reader.GetOrdinal("name");
            int statusColumnIndex          = reader.GetOrdinal("status");
            int rating_typeColumnIndex     = reader.GetOrdinal("rating_type");
            int prefix_outColumnIndex      = reader.GetOrdinal("prefix_out");
            int strip_1plusColumnIndex     = reader.GetOrdinal("strip_1plus");
            int intl_dial_codeColumnIndex  = reader.GetOrdinal("intl_dial_code");
            int partner_idColumnIndex      = reader.GetOrdinal("partner_id");
            int calling_plan_idColumnIndex = reader.GetOrdinal("calling_plan_id");
            int max_call_lengthColumnIndex = reader.GetOrdinal("max_call_length");

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

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

                    record.Carrier_acct_id = Convert.ToInt16(reader.GetValue(carrier_acct_idColumnIndex));
                    record.Name            = Convert.ToString(reader.GetValue(nameColumnIndex));
                    record.Status          = Convert.ToByte(reader.GetValue(statusColumnIndex));
                    record.Rating_type     = Convert.ToByte(reader.GetValue(rating_typeColumnIndex));
                    record.Prefix_out      = Convert.ToString(reader.GetValue(prefix_outColumnIndex));
                    record.Strip_1plus     = Convert.ToInt16(reader.GetValue(strip_1plusColumnIndex));
                    record.Intl_dial_code  = Convert.ToString(reader.GetValue(intl_dial_codeColumnIndex));
                    record.Partner_id      = Convert.ToInt32(reader.GetValue(partner_idColumnIndex));
                    record.Calling_plan_id = Convert.ToInt32(reader.GetValue(calling_plan_idColumnIndex));
                    record.Max_call_length = Convert.ToInt16(reader.GetValue(max_call_lengthColumnIndex));

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

            totalRecordCount = 0 == totalRecordCount ? ri + startIndex : -1;
            return((CarrierAcctRow[])(recordList.ToArray(typeof(CarrierAcctRow))));
        }
示例#4
0
        CarrierAcct(CarrierAcctRow pCarrierAcctRow)
        {
            carrierAcctRow = pCarrierAcctRow;

            using (var _db = new Rbr_Db()) {
                partnerRow = _db.PartnerCollection.GetByPrimaryKey(carrierAcctRow.Partner_id);
            }
            if (partnerRow == null)
            {
                throw new Exception("Couldn't FIND PartnerAcct for CarrierAcctId: " + carrierAcctRow.Carrier_acct_id);
            }
            if (partnerRow.Status != (byte)Status.Active)
            {
                throw new Exception("PartnerAcct NOT Active for CarrierAcctId: " + carrierAcctRow.Carrier_acct_id);
            }

            //TODO: set max number of calls from db
            MaxNumberOfCalls = 1000;
        }
示例#5
0
        /// <summary>
        /// Adds a new record into the <c>CarrierAcct</c> table.
        /// </summary>
        /// <param name="value">The <see cref="CarrierAcctRow"/> object to be inserted.</param>
        public virtual void Insert(CarrierAcctRow value)
        {
            string sqlStr = "INSERT INTO [dbo].[CarrierAcct] (" +
                            "[carrier_acct_id], " +
                            "[name], " +
                            "[status], " +
                            "[rating_type], " +
                            "[prefix_out], " +
                            "[strip_1plus], " +
                            "[intl_dial_code], " +
                            "[partner_id], " +
                            "[calling_plan_id], " +
                            "[max_call_length]" +
                            ") VALUES (" +
                            _db.CreateSqlParameterName("Carrier_acct_id") + ", " +
                            _db.CreateSqlParameterName("Name") + ", " +
                            _db.CreateSqlParameterName("Status") + ", " +
                            _db.CreateSqlParameterName("Rating_type") + ", " +
                            _db.CreateSqlParameterName("Prefix_out") + ", " +
                            _db.CreateSqlParameterName("Strip_1plus") + ", " +
                            _db.CreateSqlParameterName("Intl_dial_code") + ", " +
                            _db.CreateSqlParameterName("Partner_id") + ", " +
                            _db.CreateSqlParameterName("Calling_plan_id") + ", " +
                            _db.CreateSqlParameterName("Max_call_length") + ")";
            IDbCommand cmd = _db.CreateCommand(sqlStr);

            AddParameter(cmd, "Carrier_acct_id", value.Carrier_acct_id);
            AddParameter(cmd, "Name", value.Name);
            AddParameter(cmd, "Status", value.Status);
            AddParameter(cmd, "Rating_type", value.Rating_type);
            AddParameter(cmd, "Prefix_out", value.Prefix_out);
            AddParameter(cmd, "Strip_1plus", value.Strip_1plus);
            AddParameter(cmd, "Intl_dial_code", value.Intl_dial_code);
            AddParameter(cmd, "Partner_id", value.Partner_id);
            AddParameter(cmd, "Calling_plan_id", value.Calling_plan_id);
            AddParameter(cmd, "Max_call_length", value.Max_call_length);
            cmd.ExecuteNonQuery();
        }
示例#6
0
        static CarrierAcctRow mapToCarrierAcctRow(CarrierAcctDto pCarrierAcct)
        {
            if (pCarrierAcct == null)
            {
                return(null);
            }

            var _carrierAcctRow = new CarrierAcctRow();

            _carrierAcctRow.Carrier_acct_id = pCarrierAcct.CarrierAcctId;
            _carrierAcctRow.Intl_dial_code  = pCarrierAcct.IntlDialCode;
            _carrierAcctRow.Name            = pCarrierAcct.Name;
            _carrierAcctRow.Strip1plus      = pCarrierAcct.Strip1Plus;
            _carrierAcctRow.Prefix_out      = pCarrierAcct.PrefixOut;
            _carrierAcctRow.AccountStatus   = pCarrierAcct.Status;
            _carrierAcctRow.RatingType      = pCarrierAcct.RatingType;
            _carrierAcctRow.MaxCallLength   = pCarrierAcct.MaxCallLength;

            _carrierAcctRow.Partner_id      = pCarrierAcct.PartnerId;
            _carrierAcctRow.Calling_plan_id = pCarrierAcct.CallingPlan.CallingPlanId;

            return(_carrierAcctRow);
        }
示例#7
0
        //-------------------- Private ----------------------------------------------

        static CarrierAcctDto getAcct(Rbr_Db pDb, CarrierAcctRow pCarrierAcctRow)
        {
            if (pCarrierAcctRow == null)
            {
                return(null);
            }
            var _partner = PartnerManager.Get(pDb, pCarrierAcctRow.Partner_id);

            if (_partner == null)
            {
                return(null);
            }
            var _callingPlan = CallingPlanManager.GetCallingPlan(pDb, pCarrierAcctRow.Calling_plan_id);

            if (_callingPlan == null)
            {
                return(null);
            }
            var _carrierAcct = mapToCarrierAcct(pCarrierAcctRow, _partner, _callingPlan);

            _carrierAcct.DefaultRoute = CarrierRouteManager.GetDefaultRoute(pDb, _carrierAcct, RouteState.Valid);

            //-- GetDefaultCarrierRatingInfo
            if (_carrierAcct.IsRatingEnabled)
            {
                var _defaultCarrierRouteRow = pDb.CarrierRouteCollection.GetByPrimaryKey(-pCarrierAcctRow.Carrier_acct_id);
                var _carrierRateHistoryRows = pDb.CarrierRateHistoryCollection.GetByCarrier_route_id(_defaultCarrierRouteRow.Carrier_route_id);
                if (_carrierRateHistoryRows.Length < 1)
                {
                    TimokLogger.Instance.LogRbr(LogSeverity.Critical, "CarrierAcctManager.GetDefaultCarrierRatingInfo", string.Format("Unexpected: _carrierRateHistoryRows.Length = {0}", _carrierRateHistoryRows.Length));
                    throw new Exception(string.Format("CarrierAcctManager.GetDefaultCarrierRatingInfo, Unexpected: _carrierRateHistoryRows.Length = {0}", _carrierRateHistoryRows.Length));
                }
                _carrierAcct.DefaultRatingInfo = RatingManager.GetRatingInfo(pDb, _carrierRateHistoryRows[0].Rate_info_id, false);
            }

            return(_carrierAcct);
        }
示例#8
0
        /// <summary>
        /// Converts <see cref="System.Data.DataRow"/> to <see cref="CarrierAcctRow"/>.
        /// </summary>
        /// <param name="row">The <see cref="System.Data.DataRow"/> object to be mapped.</param>
        /// <returns>A reference to the <see cref="CarrierAcctRow"/> object.</returns>
        protected virtual CarrierAcctRow MapRow(DataRow row)
        {
            CarrierAcctRow mappedObject = new CarrierAcctRow();
            DataTable      dataTable    = row.Table;
            DataColumn     dataColumn;

            // Column "Carrier_acct_id"
            dataColumn = dataTable.Columns["Carrier_acct_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Carrier_acct_id = (short)row[dataColumn];
            }
            // Column "Name"
            dataColumn = dataTable.Columns["Name"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Name = (string)row[dataColumn];
            }
            // Column "Status"
            dataColumn = dataTable.Columns["Status"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Status = (byte)row[dataColumn];
            }
            // Column "Rating_type"
            dataColumn = dataTable.Columns["Rating_type"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Rating_type = (byte)row[dataColumn];
            }
            // Column "Prefix_out"
            dataColumn = dataTable.Columns["Prefix_out"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Prefix_out = (string)row[dataColumn];
            }
            // Column "Strip_1plus"
            dataColumn = dataTable.Columns["Strip_1plus"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Strip_1plus = (short)row[dataColumn];
            }
            // Column "Intl_dial_code"
            dataColumn = dataTable.Columns["Intl_dial_code"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Intl_dial_code = (string)row[dataColumn];
            }
            // Column "Partner_id"
            dataColumn = dataTable.Columns["Partner_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Partner_id = (int)row[dataColumn];
            }
            // Column "Calling_plan_id"
            dataColumn = dataTable.Columns["Calling_plan_id"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Calling_plan_id = (int)row[dataColumn];
            }
            // Column "Max_call_length"
            dataColumn = dataTable.Columns["Max_call_length"];
            if (!row.IsNull(dataColumn))
            {
                mappedObject.Max_call_length = (short)row[dataColumn];
            }
            return(mappedObject);
        }
示例#9
0
 /// <summary>
 /// Deletes the specified object from the <c>CarrierAcct</c> table.
 /// </summary>
 /// <param name="value">The <see cref="CarrierAcctRow"/> object to delete.</param>
 /// <returns>true if the record was deleted; otherwise, false.</returns>
 public bool Delete(CarrierAcctRow value)
 {
     return(DeleteByPrimaryKey(value.Carrier_acct_id));
 }