internal static RatedRouteDto Get(Rbr_Db pDb, CarrierAcctDto pCarrierAcct, CarrierRouteRow pCarrierRouteRow) { if (pCarrierRouteRow == null) { return(null); } var _activeCarrierRouteEPMapCount = pDb.CarrierAcctEPMapCollection.GetActiveCountByCarrierRouteId(pCarrierRouteRow.Carrier_route_id); var _carrierRouteState = (_activeCarrierRouteEPMapCount > 0) ? RouteState.Valid : RouteState.NoActiveEndpoints; if (pCarrierAcct.IsRatingEnabled) { //get Rates status bool _allRatesValid; CarrierRateHistoryRow _carrierRateHistoryRow = pDb.CarrierRateHistoryCollection.GetByCarrierRouteIdDate(pCarrierRouteRow.Carrier_route_id, DateTime.Today); if (_carrierRateHistoryRow == null) { _allRatesValid = false; } else { _allRatesValid = pDb.RateCollection.HasAllValidRates(_carrierRateHistoryRow.Rate_info_id); } _carrierRouteState = (_allRatesValid) ? _carrierRouteState | RouteState.Valid : _carrierRouteState | RouteState.NoRates; } var _baseRoute = RoutingManager.GetBaseRoute(pDb, pCarrierRouteRow.Route_id); var _route = mapToRoute(pCarrierRouteRow, pCarrierAcct, _baseRoute, _carrierRouteState); return(_route); }
static RatedRouteDto mapToRoute(CarrierRouteRow pCarrierRouteRow, CarrierAcctDto pCarrierAcct, BaseRouteDto pBaseRoute, RouteState pCarrierRouteState) { if (pCarrierRouteRow == null) { return(null); } var _route = new RatedRouteDto(); _route.RatedRouteId = pCarrierRouteRow.Carrier_route_id; _route.Status = pCarrierRouteRow.RouteStatus; _route.ACDTarget = pCarrierRouteRow.Acd_target; _route.ACDTimeWindow = pCarrierRouteRow.Acd_time_window; _route.ASRTarget = pCarrierRouteRow.Asr_target; _route.ASRTimeWindow = pCarrierRouteRow.Asr_time_window; _route.NextEP = pCarrierRouteRow.Next_ep; _route.AccountId = pCarrierAcct.CarrierAcctId; _route.AccountName = pCarrierAcct.Name; _route.AccountStatus = pCarrierAcct.Status; _route.BaseRoute = pBaseRoute; _route.RouteState = pCarrierRouteState; _route.DefaultRatingInfo = pCarrierAcct.DefaultRatingInfo; return(_route); }
static CarrierRouteRow mapToCarrierRouteRow(RatedRouteDto pRoute) { if (pRoute == null) { return(null); } var _carrierRouteRow = new CarrierRouteRow(); _carrierRouteRow.Carrier_route_id = pRoute.RatedRouteId; _carrierRouteRow.RouteStatus = pRoute.Status; _carrierRouteRow.Acd_target = pRoute.ACDTarget; _carrierRouteRow.Acd_time_window = pRoute.ACDTimeWindow; _carrierRouteRow.Asr_target = pRoute.ASRTarget; _carrierRouteRow.Asr_time_window = pRoute.ASRTimeWindow; _carrierRouteRow.Next_ep = pRoute.NextEP; _carrierRouteRow.Carrier_acct_id = pRoute.AccountId; if (pRoute.BaseRouteId == 0) { _carrierRouteRow.IsRoute_idNull = true; } else { _carrierRouteRow.Route_id = pRoute.BaseRouteId; } return(_carrierRouteRow); }
//--------------------------------- Constructors ------------------------------------------------- public CarrierRoute(CarrierRouteRow pCarrierRouteRow) { carrierRouteRow = pCarrierRouteRow; CarrierAcctId = carrierRouteRow.Carrier_acct_id; //-- set name RouteRow _routeRow; using (var _db = new Rbr_Db()) { _routeRow = _db.RouteCollection.GetByPrimaryKey(carrierRouteRow.Route_id); } Name = _routeRow == null ? AppConstants.Unknown : _routeRow.Name; BaseRouteId = _routeRow == null ? carrierRouteRow.Route_id : _routeRow.Route_id; //-- set ratingtype CarrierAcctRow _carrierAcctRow; using (var _db = new Rbr_Db()) { _carrierAcctRow = _db.CarrierAcctCollection.GetByPrimaryKey(carrierAcctId); } if (_carrierAcctRow == null) { throw new Exception(string.Format("CarrierRoute.Ctor | CarrierAcctRow NOT FOUND, carrierAcctId:{0}", carrierAcctId)); } ratingType = _carrierAcctRow.RatingType; }
internal static void Add(Rbr_Db pDb, CarrierAcctDto pCarrierAcct, int pBaseRouteId, out int pCarrierRouteId) { var _carrierRouteRow = new CarrierRouteRow(); _carrierRouteRow.Carrier_acct_id = pCarrierAcct.CarrierAcctId; _carrierRouteRow.Acd_target = pCarrierAcct.DefaultRoute.ACDTarget; _carrierRouteRow.Acd_time_window = pCarrierAcct.DefaultRoute.ACDTimeWindow; _carrierRouteRow.Asr_target = pCarrierAcct.DefaultRoute.ASRTarget; _carrierRouteRow.Asr_time_window = pCarrierAcct.DefaultRoute.ASRTimeWindow; _carrierRouteRow.Next_ep = pCarrierAcct.DefaultRoute.NextEP; if (pBaseRouteId > 0) { //Regular ServiceRoute _carrierRouteRow.Route_id = pBaseRouteId; _carrierRouteRow.RouteStatus = Status.Active; } else { //Default CarrierRoute, set CarrierRouteId = -CarrierAcctId, NO Base RouteId pCarrierAcct.DefaultRoute.RatedRouteId = -pCarrierAcct.CarrierAcctId; _carrierRouteRow.Carrier_route_id = pCarrierAcct.DefaultRoute.RatedRouteId; _carrierRouteRow.RouteStatus = Status.Blocked; //for Default ServiceRoute } pDb.CarrierRouteCollection.Insert(_carrierRouteRow); if (pCarrierAcct.IsRatingEnabled || pBaseRouteId == 0) { //always add Def RatingInfo for Def Route RatingManager.AddDefaultRatingInfo(pDb, _carrierRouteRow.Carrier_route_id, pCarrierAcct.DefaultRatingInfo, RouteType.Carrier); } pCarrierRouteId = _carrierRouteRow.Carrier_route_id; }
/// <summary> /// Updates a record in the <c>CarrierRoute</c> table. /// </summary> /// <param name="value">The <see cref="CarrierRouteRow"/> /// object used to update the table record.</param> /// <returns>true if the record was updated; otherwise, false.</returns> public virtual bool Update(CarrierRouteRow value) { string sqlStr = "UPDATE [dbo].[CarrierRoute] SET " + "[carrier_acct_id]=" + _db.CreateSqlParameterName("Carrier_acct_id") + ", " + "[route_id]=" + _db.CreateSqlParameterName("Route_id") + ", " + "[status]=" + _db.CreateSqlParameterName("Status") + ", " + "[asr_time_window]=" + _db.CreateSqlParameterName("Asr_time_window") + ", " + "[asr_target]=" + _db.CreateSqlParameterName("Asr_target") + ", " + "[acd_time_window]=" + _db.CreateSqlParameterName("Acd_time_window") + ", " + "[acd_target]=" + _db.CreateSqlParameterName("Acd_target") + " WHERE " + "[carrier_route_id]=" + _db.CreateSqlParameterName("Carrier_route_id"); IDbCommand cmd = _db.CreateCommand(sqlStr); AddParameter(cmd, "Carrier_acct_id", value.Carrier_acct_id); AddParameter(cmd, "Route_id", value.IsRoute_idNull ? DBNull.Value : (object)value.Route_id); AddParameter(cmd, "Status", value.Status); AddParameter(cmd, "Asr_time_window", value.Asr_time_window); AddParameter(cmd, "Asr_target", value.Asr_target); AddParameter(cmd, "Acd_time_window", value.Acd_time_window); AddParameter(cmd, "Acd_target", value.Acd_target); AddParameter(cmd, "Carrier_route_id", value.Carrier_route_id); return(0 != cmd.ExecuteNonQuery()); }
/// <summary> /// Adds a new record into the <c>CarrierRoute</c> table. /// </summary> /// <param name="value">The <see cref="CarrierRouteRow"/> object to be inserted.</param> public virtual void Insert(CarrierRouteRow value) { string sqlStr = "INSERT INTO [dbo].[CarrierRoute] (" + "[carrier_route_id], " + "[carrier_acct_id], " + "[route_id], " + "[status], " + "[asr_time_window], " + "[asr_target], " + "[acd_time_window], " + "[acd_target]" + ") VALUES (" + _db.CreateSqlParameterName("Carrier_route_id") + ", " + _db.CreateSqlParameterName("Carrier_acct_id") + ", " + _db.CreateSqlParameterName("Route_id") + ", " + _db.CreateSqlParameterName("Status") + ", " + _db.CreateSqlParameterName("Asr_time_window") + ", " + _db.CreateSqlParameterName("Asr_target") + ", " + _db.CreateSqlParameterName("Acd_time_window") + ", " + _db.CreateSqlParameterName("Acd_target") + ")"; IDbCommand cmd = _db.CreateCommand(sqlStr); AddParameter(cmd, "Carrier_route_id", value.Carrier_route_id); AddParameter(cmd, "Carrier_acct_id", value.Carrier_acct_id); AddParameter(cmd, "Route_id", value.IsRoute_idNull ? DBNull.Value : (object)value.Route_id); AddParameter(cmd, "Status", value.Status); AddParameter(cmd, "Asr_time_window", value.Asr_time_window); AddParameter(cmd, "Asr_target", value.Asr_target); AddParameter(cmd, "Acd_time_window", value.Acd_time_window); AddParameter(cmd, "Acd_target", value.Acd_target); cmd.ExecuteNonQuery(); }
/// <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="CarrierRouteRow"/> objects.</returns> protected virtual CarrierRouteRow[] 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_route_idColumnIndex = reader.GetOrdinal("carrier_route_id"); int carrier_acct_idColumnIndex = reader.GetOrdinal("carrier_acct_id"); int route_idColumnIndex = reader.GetOrdinal("route_id"); int statusColumnIndex = reader.GetOrdinal("status"); int asr_time_windowColumnIndex = reader.GetOrdinal("asr_time_window"); int asr_targetColumnIndex = reader.GetOrdinal("asr_target"); int acd_time_windowColumnIndex = reader.GetOrdinal("acd_time_window"); int acd_targetColumnIndex = reader.GetOrdinal("acd_target"); int next_epColumnIndex = reader.GetOrdinal("next_ep"); System.Collections.ArrayList recordList = new System.Collections.ArrayList(); int ri = -startIndex; while (reader.Read()) { ri++; if (ri > 0 && ri <= length) { CarrierRouteRow record = new CarrierRouteRow(); recordList.Add(record); record.Carrier_route_id = Convert.ToInt32(reader.GetValue(carrier_route_idColumnIndex)); record.Carrier_acct_id = Convert.ToInt16(reader.GetValue(carrier_acct_idColumnIndex)); if (!reader.IsDBNull(route_idColumnIndex)) { record.Route_id = Convert.ToInt32(reader.GetValue(route_idColumnIndex)); } record.Status = Convert.ToByte(reader.GetValue(statusColumnIndex)); record.Asr_time_window = Convert.ToInt32(reader.GetValue(asr_time_windowColumnIndex)); record.Asr_target = Convert.ToInt16(reader.GetValue(asr_targetColumnIndex)); record.Acd_time_window = Convert.ToInt32(reader.GetValue(acd_time_windowColumnIndex)); record.Acd_target = Convert.ToInt16(reader.GetValue(acd_targetColumnIndex)); record.Next_ep = Convert.ToByte(reader.GetValue(next_epColumnIndex)); if (ri == length && 0 != totalRecordCount) { break; } } } totalRecordCount = 0 == totalRecordCount ? ri + startIndex : -1; return((CarrierRouteRow[])(recordList.ToArray(typeof(CarrierRouteRow)))); }
void exportCarrierRates() { try { countries = new SortedList <string, CountryRecord>(); using (var _db = new Rbr_Db()) { CarrierAcctDto _carrierAcct = getCarrierAcct(_db); RouteRow[] _baseRouteRows = _db.RouteCollection.GetByCalling_plan_id(_carrierAcct.CallingPlan.CallingPlanId); if (_baseRouteRows == null || _baseRouteRows.Length <= 0) { reportStatus(LogSeverity.Status, "DialPlanExporter.exportCarrierRates", "WARNING: No Routes to Process..."); return; } _baseRouteRows = RoutingManager.SortRouteRows(_baseRouteRows); string _filePath = getFilePath(); using (var _sw = new StreamWriter(_filePath, false)) { _sw.WriteLine(args.PerMinute ? RatesFileHeaderCostPerMinute : RatesFileHeaderCostPerIncrements); int _index = 0; CountryRecord _countryRecord = null; foreach (RouteRow _baseRouteRow in _baseRouteRows) { host.ReportProgress(_index++ *100 / _baseRouteRows.Length); CarrierRouteRow _carrierRouteRow = _db.CarrierRouteCollection.GetByCarrierAcctIdRouteId(_carrierAcct.CarrierAcctId, _baseRouteRow.Route_id); if (_carrierRouteRow == null) { continue; } if (_countryRecord == null || _countryRecord.Name != _baseRouteRow.Name) { _countryRecord = getCountryRecord(_db, _baseRouteRow); } RouteRecord _routeRecord = getRouteRecord(_baseRouteRow, _countryRecord); _countryRecord.Routes.Add(_routeRecord.FullName, _routeRecord); CarrierRateHistoryRow _carrierRateHistoryRow = _db.CarrierRateHistoryCollection.GetByCarrierRouteIdDate(_carrierRouteRow.Carrier_route_id, DateTime.Today); if (_carrierRateHistoryRow != null) { RatingInfoDto _ratingInfo = RatingManager.GetRatingInfo(_db, _carrierRateHistoryRow.Rate_info_id, false); if (_ratingInfo == null) { reportStatus(LogSeverity.Critical, "DialPlanExporter.exportCarrierRates", string.Format("RatingInfo == null, {0}", _carrierRateHistoryRow.Rate_info_id)); continue; } _routeRecord.RatingInfo = _ratingInfo; reportStatus(LogSeverity.Status, "DialPlanExporter.exportCarrierRates", string.Format("Exporting Rates for Route: {0}", _routeRecord.FullName)); _sw.Write(_routeRecord.GetRatesAsString(args.PerMinute)); } } } } } catch (Exception _ex) { TimokLogger.Instance.LogRbr(LogSeverity.Critical, "DialPlanExporter.exportCarrierRates", _ex.ToString()); throw; } }
/// <summary> /// Converts <see cref="System.Data.DataRow"/> to <see cref="CarrierRouteRow"/>. /// </summary> /// <param name="row">The <see cref="System.Data.DataRow"/> object to be mapped.</param> /// <returns>A reference to the <see cref="CarrierRouteRow"/> object.</returns> protected virtual CarrierRouteRow MapRow(DataRow row) { CarrierRouteRow mappedObject = new CarrierRouteRow(); DataTable dataTable = row.Table; DataColumn dataColumn; // Column "Carrier_route_id" dataColumn = dataTable.Columns["Carrier_route_id"]; if (!row.IsNull(dataColumn)) { mappedObject.Carrier_route_id = (int)row[dataColumn]; } // Column "Carrier_acct_id" dataColumn = dataTable.Columns["Carrier_acct_id"]; if (!row.IsNull(dataColumn)) { mappedObject.Carrier_acct_id = (short)row[dataColumn]; } // Column "Route_id" dataColumn = dataTable.Columns["Route_id"]; if (!row.IsNull(dataColumn)) { mappedObject.Route_id = (int)row[dataColumn]; } // Column "Status" dataColumn = dataTable.Columns["Status"]; if (!row.IsNull(dataColumn)) { mappedObject.Status = (byte)row[dataColumn]; } // Column "Asr_time_window" dataColumn = dataTable.Columns["Asr_time_window"]; if (!row.IsNull(dataColumn)) { mappedObject.Asr_time_window = (int)row[dataColumn]; } // Column "Asr_target" dataColumn = dataTable.Columns["Asr_target"]; if (!row.IsNull(dataColumn)) { mappedObject.Asr_target = (short)row[dataColumn]; } // Column "Acd_time_window" dataColumn = dataTable.Columns["Acd_time_window"]; if (!row.IsNull(dataColumn)) { mappedObject.Acd_time_window = (int)row[dataColumn]; } // Column "Acd_target" dataColumn = dataTable.Columns["Acd_target"]; if (!row.IsNull(dataColumn)) { mappedObject.Acd_target = (short)row[dataColumn]; } // Column "Next_ep" dataColumn = dataTable.Columns["Next_ep"]; if (!row.IsNull(dataColumn)) { mappedObject.Next_ep = (byte)row[dataColumn]; } return(mappedObject); }
/// <summary> /// Deletes the specified object from the <c>CarrierRoute</c> table. /// </summary> /// <param name="value">The <see cref="CarrierRouteRow"/> object to delete.</param> /// <returns>true if the record was deleted; otherwise, false.</returns> public bool Delete(CarrierRouteRow value) { return(DeleteByPrimaryKey(value.Carrier_route_id)); }