private void FillOrCleanCSVRow(CDRData cdrData, bool clean) { this.csvRow["CallStartTime"] = (clean ? string.Empty : cdrData.CallStartTime.ToString("u")); this.csvRow["CallType"] = (clean ? string.Empty : Utils.CheckString(cdrData.CallType)); this.csvRow["CallIdentity"] = (clean ? string.Empty : Utils.CheckString(cdrData.CallIdentity)); this.csvRow["ParentCallIdentity"] = (clean ? string.Empty : Utils.CheckString(cdrData.ParentCallIdentity)); if (!CommonConstants.UseDataCenterLogging) { this.csvRow["UMServerName"] = (clean ? string.Empty : Utils.CheckString(cdrData.UMServerName)); } this.csvRow["DialPlanName"] = (clean ? string.Empty : Utils.CheckString(cdrData.DialPlanName)); this.csvRow["CallDuration"] = (clean ? string.Empty : TimeSpan.FromSeconds((double)cdrData.CallDuration).ToString()); this.csvRow["IPGatewayAddress"] = (clean ? string.Empty : Utils.CheckString(cdrData.IPGatewayAddress)); this.csvRow["IPGatewayName"] = (clean ? string.Empty : Utils.CheckString(cdrData.IPGatewayName)); this.csvRow["CalledPhoneNumber"] = (clean ? string.Empty : Utils.CheckString(cdrData.CalledPhoneNumber)); this.csvRow["CallerPhoneNumber"] = (clean ? string.Empty : Utils.CheckString(cdrData.CallerPhoneNumber)); this.csvRow["OfferResult"] = (clean ? string.Empty : Utils.CheckString(cdrData.OfferResult)); this.csvRow["DropCallReason"] = (clean ? string.Empty : Utils.CheckString(cdrData.DropCallReason)); this.csvRow["ReasonForCall"] = (clean ? string.Empty : Utils.CheckString(cdrData.ReasonForCall)); this.csvRow["TransferredNumber"] = (clean ? string.Empty : Utils.CheckString(cdrData.TransferredNumber)); this.csvRow["DialedString"] = (clean ? string.Empty : Utils.CheckString(cdrData.DialedString)); this.csvRow["CallerMailboxAlias"] = (clean ? string.Empty : Utils.CheckString(cdrData.CallerMailboxAlias)); this.csvRow["CalleeMailboxAlias"] = (clean ? string.Empty : Utils.CheckString(cdrData.CalleeMailboxAlias)); this.csvRow["AutoAttendantName"] = (clean ? string.Empty : Utils.CheckString(cdrData.AutoAttendantName)); this.csvRow["NMOS"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.NMOS)); this.csvRow["NMOSDegradation"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.NMOSDegradation)); this.csvRow["NMOSDegradationPacketLoss"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.NMOSDegradationPacketLoss)); this.csvRow["NMOSDegradationJitter"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.NMOSDegradationJitter)); this.csvRow["Jitter"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.Jitter)); this.csvRow["PacketLoss"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.PacketLoss)); this.csvRow["RoundTrip"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.RoundTrip)); this.csvRow["BurstDensity"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.BurstDensity)); this.csvRow["BurstDuration"] = (clean ? string.Empty : this.CheckAudioMetricString(cdrData.AudioQualityMetrics.BurstDuration)); this.csvRow["AudioCodec"] = (clean ? string.Empty : Utils.CheckString(cdrData.AudioQualityMetrics.AudioCodec)); }
private void CdrToDB(CdrRequest_t _cdr, CdrList _cdrdata) { CDRData _cdrd = new CDRData() { OFFICE_NAME = _cdrdata.office_name , STARTDATE = new DateTime(_cdrdata.start_yyyy, _cdrdata.start_month, _cdrdata.start_day, _cdrdata.start_hour, _cdrdata.start_min, _cdrdata.start_sec) , ENDDATE = new DateTime(_cdrdata.end_yyyy, _cdrdata.end_month, _cdrdata.end_day, _cdrdata.end_hour, _cdrdata.end_min, _cdrdata.end_sec) , CALLER = _cdrdata.caller , CALLER_TYPE = _cdrdata.caller_type , CALLER_IPN_NUMBER = _cdrdata.caller_ipn_number , CALLER_GROUP_CODE = _cdrdata.caller_group_code , CALLER_GROUP_NAME = _cdrdata.caller_group_name , CALLER_HUMAN_NAME = _cdrdata.caller_human_name , CALLEE = _cdrdata.callee , CALLEE_TYPE = _cdrdata.callee_type , CALLEE_IPN_NUMBER = _cdrdata.callee_ipn_number , CALLEE_GROUP_CODE = _cdrdata.callee_group_code , CALLEE_GROUP_NAME = _cdrdata.callee_group_name , CALLEE_HUMAN_NAME = _cdrdata.callee_human_name , RESULT = _cdrdata.result , SEQ = _cdrdata.seq }; StringBuilder __slqsb = new StringBuilder(); __slqsb.Append(" insert into CDRINFO "); __slqsb.Append(" ( "); __slqsb.Append(" OFFICE_NAME "); __slqsb.Append(" , STARTDATE "); __slqsb.Append(" , ENDDATE "); __slqsb.Append(" , CALLER "); __slqsb.Append(" , CALLER_TYPE "); __slqsb.Append(" , CALLER_IPN_NUMBER "); __slqsb.Append(" , CALLER_GROUP_CODE "); __slqsb.Append(" , CALLER_GROUP_NAME "); __slqsb.Append(" , CALLER_HUMAN_NAME "); __slqsb.Append(" , CALLEE "); __slqsb.Append(" , CALLEE_TYPE "); __slqsb.Append(" , CALLEE_IPN_NUMBER "); __slqsb.Append(" , CALLEE_GROUP_CODE "); __slqsb.Append(" , CALLEE_GROUP_NAME "); __slqsb.Append(" , CALLEE_HUMAN_NAME "); __slqsb.Append(" , RESULT "); __slqsb.Append(" , SEQ "); __slqsb.Append(" ) values ( "); __slqsb.AppendFormat(" '{0}' ", _cdrd.OFFICE_NAME); __slqsb.AppendFormat(" , '{0}' ", _cdrd.STARTDATE.ToString("yyyy-MM-dd HH:mm:ss")); __slqsb.AppendFormat(" , '{0}' ", _cdrd.ENDDATE.ToString("yyyy-MM-dd HH:mm:ss")); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLER); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLER_TYPE); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLER_IPN_NUMBER); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLER_GROUP_CODE); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLER_GROUP_NAME); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLER_HUMAN_NAME); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLEE); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLEE_TYPE); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLEE_IPN_NUMBER); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLEE_GROUP_CODE); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLEE_GROUP_NAME); __slqsb.AppendFormat(" , '{0}' ", _cdrd.CALLEE_HUMAN_NAME); __slqsb.AppendFormat(" , '{0}' ", _cdrd.RESULT); __slqsb.AppendFormat(" , '{0}' ", _cdrd.SEQ); __slqsb.Append(" ); "); using (FirebirdDBHelper db = new FirebirdDBHelper(__slqsb.ToString(), util.strDBConn)) { try { db.BeginTran(); int __count = db.GetEffectedCount(); db.Commit(); CdrResponse_t __cdrRes = this.GetCdrRtnMsg(_cdr); byte[] __buffer = util.GetBytes(__cdrRes); try { _sockCdrSrv.SendTo(__buffer, SocketFlags.None, _remoteep); } catch (SocketException __se) { util.WriteLog(string.Format("Socket send message error : {0}", __se.Message)); } } catch (FirebirdSql.Data.FirebirdClient.FbException __fex) { db.Rollback(); util.WriteLog(string.Format("{0} : {1}\r\nMessage : {2}", "Rollback Exception Type", __fex.GetType(), __fex.Message)); } catch (SocketException __se) { util.WriteLog(string.Format("Socket send message error : {0}", __se.Message)); } } }