static void loadCDR(IEnumerable <CDRRow> pCDRRows, DateTime pCurrent, DateTime pPrevious) { using (var _dbCurrent = new Cdr_Db(pCurrent)) { using (var _dbPrevious = new Cdr_Db(pPrevious)) { _dbCurrent.BeginTransaction(); _dbPrevious.BeginTransaction(); foreach (var _cdrRow in pCDRRows) { if (_cdrRow.Start.Month == pCurrent.Month) { insert(_dbCurrent, _cdrRow); } else if (_cdrRow.Start.Month == pPrevious.Month) { insert(_dbPrevious, _cdrRow); } else { throw new Exception("How can a CDR NOT belong to current or previous Month?"); } } _dbCurrent.CommitTransaction(); _dbPrevious.CommitTransaction(); } } }
CDRRow[] getCDRFromDb(DateTime pNow) { var _endDateLogged = new DateTime(pNow.Year, pNow.Month, pNow.Day, pNow.Hour, pNow.Minute, 0, 0).Subtract(TimeSpan.FromMinutes(1)); var _temp = _endDateLogged.Subtract(TimeSpan.FromMinutes(frequency - 1)); var _startDateLogged = new DateTime(_temp.Year, _temp.Month, _temp.Day, _temp.Hour, _temp.Minute, 0, 0); var _previousDayDate = _startDateLogged.AddDays(-1); validateTimer(pNow, _startDateLogged, _endDateLogged); var _cdrList = new List <CDRRow>(); using (var _db = new Cdr_Db(_startDateLogged)) { _cdrList.AddRange(_db.CDRCollection.GetByDateLoggedRange(_startDateLogged, _endDateLogged)); } if (_previousDayDate.Month != _startDateLogged.Month) { //on the Month change, pick CDRs from previous month's Db by the same DateLoggedRange using (var _db = new Cdr_Db(_previousDayDate)) { _cdrList.AddRange(_db.CDRCollection.GetByDateLoggedRange(_startDateLogged, _endDateLogged)); } } T.LogRbr(LogSeverity.Status, "CdrExporter.getCDRFromDb", string.Format("Got call records count: {0}", _cdrList.Count)); return(_cdrList.ToArray()); }
public static int Update(Cdr pCdr) { using (var _db = new Cdr_Db(DateTime.Now)) { _db.CDRCollection.Update(pCdr.CdrRow); } return(0); }
public static EndpointASR[] GetTermEndpointsASR(int pTimokDate) { DataTable _dt; using (var _db = new Cdr_Db(TimokDate.ToDateTime(pTimokDate))) { _dt = _db.CDRCollection.GetTermEpAsr(pTimokDate); } var _list = new ArrayList(); if (_dt != null && _dt.Rows.Count > 0) { using (var _db = new Rbr_Db()) { foreach (DataRow _dataRow in _dt.Rows) { var _endpointAsr = new EndpointASR { EndpointId = ((short)_dataRow[EndpointAsrDataTable.Id_ColumnName]), Calls = ((int)_dataRow[EndpointAsrDataTable.Calls_ColumnName]), ConnectedCalls = ((int)_dataRow[EndpointAsrDataTable.Connected_calls_ColumnName]), Asr = ((int)_dataRow[EndpointAsrDataTable.Asr_ColumnName]) }; if (_endpointAsr.EndpointId > 0) { var _endPointRow = _db.EndPointCollection.GetByPrimaryKey(_endpointAsr.EndpointId); _endpointAsr.Alias = _endPointRow.Alias; } _list.Add(_endpointAsr); } } _list.Sort(new GenericComparer(EndpointASR.Alias_PropName, ListSortDirection.Ascending)); } return((EndpointASR[])_list.ToArray(typeof(EndpointASR))); }
//used by ReportEngine public static RouteMinutesSummary[] GetCustomerRouteMinutesSummaries(int pTimokDate) { DataTable _dt; using (var _db = new Cdr_Db(TimokDate.ToDateTime(pTimokDate))) { _dt = _db.CDRCollection.GetCustomerRoutesTotalMinutes(pTimokDate); } var _list = new ArrayList(); if (_dt != null && _dt.Rows.Count > 0) { using (var _db = new Rbr_Db()) { foreach (DataRow _dataRow in _dt.Rows) { var _routeMinutesSummary = new RouteMinutesSummary { Id = ((int)_dataRow[CustomerRoutesTotalMinutesDataTable.Id_ColumnName]), Minutes = ((decimal)_dataRow[CustomerRoutesTotalMinutesDataTable.Minutes_ColumnName]) }; if (_routeMinutesSummary.Id > 0) { var _routeRow = _db.RouteCollection.GetByPrimaryKey(_routeMinutesSummary.Id); _routeMinutesSummary.Name = _routeRow.Name; } _list.Add(_routeMinutesSummary); } } _list.Sort(new GenericComparer(RouteMinutesSummary.Name_PropName, ListSortDirection.Ascending)); } return((RouteMinutesSummary[])_list.ToArray(typeof(RouteMinutesSummary))); }
///NOTE: depricated //static List<string> getCDRs(string pWhereFilter, CdrExportMap pCdrExportMap, int pStartTimokDate, int pEndTimokDate, string pDecimalFormatString, BackgroundWorker pBackgroundWorker) { // pBackgroundWorker.ReportStatus("Retrieving CDRs..."); // List<string> _records = new List<string>(); // if (Cdr_Db.Exists(TimokDate.ToDateTime(pStartTimokDate))) { // using (Cdr_Db _db = new Cdr_Db(TimokDate.ToDateTime(pStartTimokDate))) { // IDbCommand _cmd = _db.Connection.CreateCommand(); // _cmd.CommandText = getSQLForCDRViewExport(_db.Connection.Database, pCdrExportMap.CdrExportMapDetails, pStartTimokDate, pEndTimokDate, pWhereFilter); // IDataReader _reader = _cmd.ExecuteReader(); // while (_reader.Read()) { // if (pBackgroundWorker.CancellationPending) { // throw new Exception("CDR Export canceled"); // } // StringBuilder _record = new StringBuilder(); // foreach (CdrExportMapDetail _field in pCdrExportMap.CdrExportMapDetails) { // object _value = _reader.GetValue(_field.Sequence - 1); // _record.Append(_value); // //NOTE: if need to format prices, here is the place to do that // //if (_value is Decimal) { // // _record.Append(((decimal) _value).ToString(pDecimalFormatString)); // //} // //else { // // _record.Append(_value); // //} // _record.Append((char) pCdrExportMap.CdrExportDelimeter); // } // _records.Add(_record.ToString().TrimEnd((char) pCdrExportMap.CdrExportDelimeter)); // } // } // } // pBackgroundWorker.ReportStatus(string.Format("Retrieved {0} CDRs", _records.Count)); // return _records; //} static List <string> getCDRs(string pWhereFilter, ICdrExportInfo pCdrExportInfo, int pTimokDate, IBackgroundWorker pBackgroundWorker) { var _records = new List <string>(); if (Cdr_Db.Exists(TimokDate.ToDateTime(pTimokDate))) { CDRViewRow[] _cdrViewRows; try { using (var _db = new Cdr_Db(TimokDate.ToDateTime(pTimokDate))) { _cdrViewRows = _db.CDRViewCollection.Get(pTimokDate, pWhereFilter); } } catch (Exception _ex) { TimokLogger.Instance.LogRbr(LogSeverity.Critical, GetcdrsLabel, string.Format("Exception:\r\n{0}", _ex)); pBackgroundWorker.ReportStatus(string.Format("Exception! Exported {0} CDRs", _records.Count)); return(_records); } if (_cdrViewRows == null || _cdrViewRows.Length == 0) { TimokLogger.Instance.LogRbr(LogSeverity.Error, GetcdrsLabel, "No CDR Records found"); pBackgroundWorker.ReportStatus("No CDR Records found"); return(_records); } pBackgroundWorker.ReportStatus(string.Format("Retrieved {0} CDRs for: {1}", _cdrViewRows.Length, TimokDate.ToDateTime(pTimokDate).ToString("yyyy-MM-dd HH:mm"))); var _recordCount = 0; foreach (var _cdrViewRow in _cdrViewRows) { if (pBackgroundWorker.CancellationPending) { throw new Exception("CDR Export canceled"); } if (pCdrExportInfo.WithRerating && _cdrViewRow.Duration > 0) { if (!rerateCDR(_cdrViewRow, pBackgroundWorker)) { continue; } } _records.Add(mapToExportedRecord(_cdrViewRow, pCdrExportInfo.CdrExportMap)); pBackgroundWorker.ReportProgress(++_recordCount * 100 / _cdrViewRows.Length); } if (_records.Count != _cdrViewRows.Length) { pBackgroundWorker.ReportStatus(string.Format("ERROR: Exported {0} out of {1} retreived CDRs", _records.Count, _cdrViewRows.Length)); } else { pBackgroundWorker.ReportStatus(string.Format("Exported {0} CDRs for: {1}", _records.Count, TimokDate.ToDateTime(pTimokDate).ToString("yyyy-MM-dd HH:mm"))); } } return(_records); }
static void loadCDR(IEnumerable <CDRRow> pCDRRows, DateTime pCurrent) { using (var _dbCurrent = new Cdr_Db(pCurrent)) { _dbCurrent.BeginTransaction(); foreach (var _cdrRow in pCDRRows) { insert(_dbCurrent, _cdrRow); } _dbCurrent.CommitTransaction(); } }
public static List <CdrDto> GetCDRsByCarrierAcctIdEndpointId(int pStartTimokDate, int pEndTimokDate, short pCarrierAcctId, short pEndpointId) { var _cdrViewRows = new CDRViewRow[0]; if (Cdr_Db.Exists(TimokDate.ToDateTime(pStartTimokDate))) { using (var db = new Cdr_Db(TimokDate.ToDateTime(pStartTimokDate))) { _cdrViewRows = db.CDRViewCollection.GetByCarrierAcctIdEndpointId(pStartTimokDate, pEndTimokDate, pCarrierAcctId, pEndpointId); } } return(mapToCDRs(_cdrViewRows)); }
public static List <CdrDto> GetRetailAcctCDRs(int pStartTimokDate, int pEndTimokDate, int pRetailAcctId) { var _cdrViewRows = new CDRViewRow[0]; if (Cdr_Db.Exists(TimokDate.ToDateTime(pStartTimokDate))) { using (var db = new Cdr_Db(TimokDate.ToDateTime(pStartTimokDate))) { _cdrViewRows = db.CDRViewCollection.GetByRetailAcctId(pStartTimokDate, pEndTimokDate, pRetailAcctId); } } return(mapToCDRs(_cdrViewRows)); }
static void validateCdrDb() { //TODO: Cdr_Db.CheckConfigConnectionString(); if (!Cdr_Db.Exists(DateTime.Today)) { Cdr_Db.Create(DateTime.Today, 3); } checkCdrDbConnection(DateTime.Today); Cdr_Db.CheckCdrDependancy(); }
public static List <CdrDto> GetByStartRetailAcctId(DateTime pDate, int pRetailAcctId) { var _cdrViewRows = new CDRViewRow[0]; if (Cdr_Db.Exists(pDate)) { using (var db = new Cdr_Db(pDate)) { _cdrViewRows = db.CDRViewCollection.GetByStartRetailAcctId(pDate, pRetailAcctId); } } return(mapToCDRs(_cdrViewRows)); }
public static List <CdrDto> GetCDRsByRetailAcctId(int pStartTimokDate, int pEndTimokDate, int pRetailAcctId, int pPageNumber, int pPageSize, out int pTotalCount) { pTotalCount = 0; var _cdrViewRows = new CDRViewRow[0]; if (Cdr_Db.Exists(TimokDate.ToDateTime(pStartTimokDate))) { using (var _db = new Cdr_Db(TimokDate.ToDateTime(pStartTimokDate))) { _cdrViewRows = _db.CDRViewCollection.GetByRetailAcctIdPaged(pStartTimokDate, pEndTimokDate, pRetailAcctId, pPageNumber, pPageSize, out pTotalCount); } } return(mapToCDRs(_cdrViewRows)); }
public static List <CdrDto> GetCDRsByCustomerAcctId(DateTime pDate, short pCustomerAcctId) { var _cdrViewRows = new CDRViewRow[0]; int _startTimokDate = TimokDate.Parse(pDate, TimokDate.MinHour); int _endTimokDate = TimokDate.Parse(pDate, TimokDate.MaxHour); if (Cdr_Db.Exists(pDate)) { using (var _db = new Cdr_Db(pDate)) { _cdrViewRows = _db.CDRViewCollection.GetByCustomer_acct_id(_startTimokDate, _endTimokDate, pCustomerAcctId); } } return(mapToCDRs(_cdrViewRows)); }
public static int GetCDRCountByCustomerAcctId(DateTime pDate, short pCustomerAcctId, int pPageNumber, int pPageSize, out int pTotalCount) { pTotalCount = 0; int _startTimokDate = TimokDate.Parse(pDate, TimokDate.MinHour); int _endTimokDate = TimokDate.Parse(pDate, TimokDate.MaxHour); if (Cdr_Db.Exists(pDate)) { using (var _db = new Cdr_Db(pDate)) { return(_db.CDRViewCollection.GetCountByCustomerAcctIdPaged(_startTimokDate, _endTimokDate, pCustomerAcctId)); } } return(0); }
public static List <CdrDto> GetCDRsByCustomerAcctIdPaged(DateTime pDate, short pCustomerAcctId, int pPageNumber, int pPageSize, out int pTotalCount) { pTotalCount = 0; var _cdrViewRows = new CDRViewRow[0]; int _startTimokDate = TimokDate.Parse(pDate, TimokDate.MinHour); int _endTimokDate = TimokDate.Parse(pDate, TimokDate.MaxHour); if (Cdr_Db.Exists(pDate)) { using (var _db = new Cdr_Db(pDate)) { _cdrViewRows = _db.CDRViewCollection.GetByCustomerAcctIdPaged(_startTimokDate, _endTimokDate, pCustomerAcctId, pPageNumber, pPageSize, out pTotalCount); } } return(mapToCDRs(_cdrViewRows)); }
public static List <CdrDto> GetCDRsByRetailAcctId(int pRetailAcctId, DateTime pDateActive) { var _cdrViewRows = new List <CDRViewRow>(); for (int _i = 0; _i <= 12; _i++) { DateTime _date = pDateActive.AddMonths(_i); if (Cdr_Db.Exists(_date)) { using (var db = new Cdr_Db(_date)) { _cdrViewRows.AddRange(db.CDRViewCollection.GetByRetailAcctId(_date, pRetailAcctId)); } } } return(mapToCDRs(_cdrViewRows.ToArray())); }
public static Cdr Get(string pCallId) { var _callId = CDRRow.StripSpaces(pCallId); CDRRow[] _cdrRows; using (var _db = new Cdr_Db(DateTime.Now)) { _cdrRows = _db.CDRCollection.GetById(_callId); } if (_cdrRows == null) { throw new RbrException(RbrResult.Cdr_NotFound, "Cdr.Get", string.Format("CallId={0}", _callId)); } if (_cdrRows.Length != 1) { throw new RbrException(RbrResult.Cdr_Unexpected, "Cdr.Get", string.Format("CallId={0}", _callId)); } return(new Cdr(_cdrRows[0])); }
public static bool HasCDRsByTermEndPointId(short pTermEndPointId) { int _count = 0; int _startTimokDate = TimokDate.Parse(DateTime.Now.AddMonths(MonthsBackToCheckCDRs)); int _endTimokDate = TimokDate.Parse(DateTime.Now); ArrayList _dbDateList = getDBDateList(_startTimokDate, _endTimokDate); foreach (DateTime _dbDate in _dbDateList) { if (_count <= 0) { if (Cdr_Db.Exists(_dbDate)) { using (var _db = new Cdr_Db(_dbDate)) { _count += _db.CDRCollection.GetCountByTermEndPointId(_startTimokDate, _endTimokDate, pTermEndPointId); } } } } return(_count > 0); }
public int Insert() { try { //-- Make sure prefixIn and prefixOut is not more then 10 chars: if (PrefixIn != null && PrefixIn.Length > AppConstants.MaxPrefixLength) { PrefixIn = PrefixIn.Substring(0, AppConstants.MaxPrefixLength); } if (PrefixOut != null && PrefixOut.Length > AppConstants.MaxPrefixLength) { PrefixOut = PrefixOut.Substring(0, AppConstants.MaxPrefixLength); } //-- Make sure Local_number is not more then 18 chars: if (LocalNumber != null && LocalNumber.Length > 18) { LocalNumber = LocalNumber.Substring(0, 18); } } catch (Exception _ex) { TimokLogger.Instance.LogRbr(LogSeverity.Error, "Cdr.Insert", string.Format("Exception:\r\n{0}", _ex)); return(1); } //--insert into local database. NOTE: use CDRDb based on start of the call !!! try { using (var _db = new Cdr_Db(CdrRow.Start)) { insert(_db, CdrRow); } } catch (Exception _ex) { TimokLogger.Instance.LogRbr(LogSeverity.Error, "Cdr.Insert", string.Format("Inserting to local db, Exception:\r\n{0}", _ex)); return(1); } return(0); }
/// <summary> /// Initializes a new instance of the <see cref="CDRIdentityCollection_Base"/> /// class with the specified <see cref="Cdr_Db"/>. /// </summary> /// <param name="db">The <see cref="Cdr_Db"/> object.</param> public CDRIdentityCollection_Base(Cdr_Db db) { _db = db; }
//-- Mandatory default Constructor: public static void CreateDb() { const int _monthsAhead = 2; Cdr_Db.Create(DateTime.Today, _monthsAhead); }