private void Bw_DoWork(object sender, DoWorkEventArgs e) { SubmitSm submitSm = null; SubmitSmResp submitSmResp = null; List <SubmitSm> submitSmList = null; List <SubmitSmResp> submitSmRespList = null; var QMessages = new OutSMSRepo(db).GetPendingSMSQueue(); //AddLog("dd", "worker work", "OUT", "4003", Color.Black); if (!object.ReferenceEquals(QMessages, null) && (QMessages.Count > 0)) { while (QMessages.Count > 0) { if (ContinueSending) { var OutMsg = QMessages.Dequeue(); int retvalue = -1; if (!string.IsNullOrEmpty(OutMsg.Receiver) && !string.IsNullOrEmpty(OutMsg.Message)) { if (OutMsg.Message.Length <= 70) { retvalue = connectionManager.SendMessage(OutMsg.Receiver, null, Ton.Unknown, Npi.Unknown, DataCodings.UCS2 , DataCodings.UCS2, OutMsg.Message, out submitSm, out submitSmResp); } else { retvalue = connectionManager.SendMessageLarge(OutMsg.Receiver, null, Ton.Unknown, Npi.Unknown, DataCodings.UCS2 , DataCodings.UCS2, OutMsg.Message, out submitSmList, out submitSmRespList); } AddLog(OutMsg.Receiver, OutMsg.Message, "OUT", OutMsg.Sender, "Bw_DoWork", Color.Black); new OutSMSRepo(db).RemoveMessage(OutMsg.Id); //Thread.Sleep(100); } } } } }
private void smppclient_DeliverEvent(string mobile_no, string short_no, string text_message, string text_language) { if (mobile_no.StartsWith("967")) { mobile_no = mobile_no.Substring(3); } if (short_no.StartsWith("967")) { short_no = short_no.Substring(3); } // Commit comming message ... try { Regex re = new Regex("[;\\/:*?\"<>|&']"); text_message = re.Replace(text_message, string.Empty); RegexOptions options = RegexOptions.None; Regex regex = new Regex("[ ]{2,}", options); text_message = regex.Replace(text_message, " "); var SMSReception = new SMSIn(); SMSReception.Sender = mobile_no; SMSReception.Receiver = short_no; SMSReception.Message = text_message; SMSReception.Lang = text_language; new SMSInRepo(db).Create(SMSReception); } catch (Exception ex) { CurrentLogMessage c = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), "", "Exception in deliver event when trying commit comming message[" + ex.Message + "]", "error"); WriteLog(c); } //--------------------------------------------------------- try { if (short_no == SharedParams.Short_Code.ToString() && mobile_no.StartsWith("70")) { DeliverMessage.Delivered_Message DelMsg = new DeliverMessage.Delivered_Message(mobile_no, short_no, text_message, text_language, CurrentInterface.Channel); CurrentLogMessage c = new CurrentLogMessage("R", short_no, mobile_no, text_message, "deliver"); WriteLog(c); if (SharedParams.Application_Status == "stop") { CurrentLogMessage c1 = new CurrentLogMessage("S", short_no, mobile_no, SharedParams.Application_Stop_Message, "sender"); WriteLog(c1); var ReplayMessage = new SMSOut(); ReplayMessage.Message = SharedParams.Application_Stop_Message; ReplayMessage.Receiver = mobile_no; bool res = new OutSMSRepo(db).Create(ReplayMessage).Success; if (res == false) { CurrentLogMessage c2 = new CurrentLogMessage("", short_no, mobile_no, "could NOT create message [" + SharedParams.Application_Stop_Message + "]", "error"); WriteLog(c2); } } else { bw_Delivery = new BackgroundWorker(); bw_Delivery.WorkerReportsProgress = true; bw_Delivery.WorkerSupportsCancellation = true; bw_Delivery.DoWork += new DoWorkEventHandler(bw_Delivery_DoWork); bw_Delivery.ProgressChanged += new ProgressChangedEventHandler(bw_Delivery_ProgressChanged); bw_Delivery.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bw_Delivery_RunWorkerCompleted); if (bw_Delivery.IsBusy != true) { bw_Delivery.RunWorkerAsync(DelMsg); } else { string Msg = "عذرا النظام مشغول بمعالجة طلب اخر يرجى المحاولة لاحقا"; CurrentLogMessage c1 = new CurrentLogMessage("S", short_no, mobile_no, Msg, "sender"); WriteLog(c1); var ReplayMessage = new SMSOut(); ReplayMessage.Message = Msg; ReplayMessage.Receiver = mobile_no; bool res = new OutSMSRepo(db).Create(ReplayMessage).Success; if (res == false) { CurrentLogMessage c2 = new CurrentLogMessage("", short_no, mobile_no, "could NOT create message [" + Msg + "]", "error"); WriteLog(c2); } } } } else { CurrentLogMessage c = new CurrentLogMessage("R", short_no, mobile_no, text_message, "invaliddeliver"); WriteLog(c); } } catch (Exception ex) { CurrentLogMessage c = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), "", "Exception in deliver event [" + ex.Message + "]", "error"); WriteLog(c); } }