Ejemplo n.º 1
0
        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);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }