public void SendNotification <T>(string activityId, int refNo, T data, int suppress = 0) { var activity = new ActivityRepo(db, partnerManager).GetActivity(activityId); var messages = new ActivityMessageRepo(db, partnerManager).GetList(activity.Id, -1); var toNumber = string.Empty; foreach (var m in messages) { if (suppress > 0 && suppress == m.Message.ToWho) { continue; } if (m.Message.ToWho == 1) { toNumber = new MessageTemplateRepo(db, partnerManager).TranslateMessage <T>("{mobile.1}", data); } else { toNumber = new MessageTemplateRepo(db, partnerManager).TranslateMessage <T>("{mobile.2}", data); } var readyMsg = new MessageTemplateRepo(db, partnerManager).TranslateMessage <T>(m.Message.Message, data); if (!string.IsNullOrEmpty(toNumber) && !string.IsNullOrEmpty(readyMsg)) { var sms = new SMSOut(); sms.Receiver = toNumber; sms.Message = readyMsg; var result = Create(sms); } } }
public Queue <SMSOut> GetPendingSMSQueue(int count = 100) { var masterDataTable = db.GetData("Select * from SMS_OUT t WHERE ROWNUM < " + count + " order by row_id", null); if (masterDataTable == null) { return(null); } if (masterDataTable.Rows.Count == 0) { return(null); } var results = new Queue <SMSOut>(); foreach (DataRow row in masterDataTable.Rows) { var obj = new SMSOut(); obj.Id = row["row_id"] == DBNull.Value ? -1 : int.Parse(row["row_id"].ToString()); obj.Receiver = row["receiver"] == DBNull.Value ? string.Empty : row["receiver"].ToString(); obj.Sender = row["sender"] == DBNull.Value ? string.Empty : row["sender"].ToString(); obj.Message = row["message"] == DBNull.Value ? string.Empty : row["message"].ToString(); results.Enqueue(obj); } return(results); }
public OpertionResult Create(SMSOut sms) { try { #region Parameters var parameters = new List <OracleParameter> { new OracleParameter { ParameterName = "retVal", OracleDbType = OracleDbType.Int32, Direction = ParameterDirection.ReturnValue }, new OracleParameter { ParameterName = "v_message", OracleDbType = OracleDbType.NVarchar2, Value = sms.Message }, new OracleParameter { ParameterName = "v_receiver", OracleDbType = OracleDbType.Varchar2, Value = sms.Receiver }, }; #endregion db.ExecuteStoredProc("pk_infra.fn_createOutSMS", parameters); var result = int.Parse(parameters.Find(x => x.ParameterName == "retVal").Value.ToString()); if (result > 0) { return(new OpertionResult { AffectedCount = result, Success = true, Error = string.Empty }); } else { return(new OpertionResult { AffectedCount = result, Success = false, Error = string.Empty }); } } catch (Exception ex) { return(new OpertionResult { AffectedCount = -1, Success = false, Error = ex.Message }); } }
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); } }
private void bw_Delivery_DoWork(object sender, DoWorkEventArgs e) { // Delivered message start parsing ... try { bool res; CurrentLogMessage c2 = null; DeliverMessage.Delivered_Message delmsg = (DeliverMessage.Delivered_Message)e.Argument; if (delmsg.Short_code == SharedParams.Short_Code.ToString()) { DeliverMessage DeliverMsg = new DeliverMessage(db, partnerManager, partnerActivityRepo, _logger); DeliverMessage.RequestReturnValue RQretuenvalue = new DeliverMessage.RequestReturnValue(); var RQpack = new PartnerRequest(); var queueNo = getCurrentChannelNo(); RQretuenvalue = DeliverMsg.Parse_Request(delmsg, queueNo, out RQpack); if (RQretuenvalue.Ret_Status == true) { c2 = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo, RQpack.RequestName + " - " + RQpack.Shortcode + " - " + RQpack.ReplayDesc + " success (" + RQpack.Id + ") Q(" + queueNo + ")", "partnerok"); bw_Delivery.ReportProgress(0, c2); if (RQpack.RequestId == 3) { var result = new PartnerRequestRepo(db).Create(RQpack); } } else { if (RQretuenvalue.Ret_ID == -1) { CurrentLogMessage c = new CurrentLogMessage("S", SharedParams.Short_Code.ToString(), RQpack.MobileNo, RQretuenvalue.Ret_Message_to_Client, "partnererror"); e.Result = c; var BadRequest = new PartnerRequest(); BadRequest.MobileNo = RQpack.MobileNo; BadRequest.Shortcode = SharedParams.Short_Code.ToString(); BadRequest.Content = RQpack.Content; BadRequest.Error = RQretuenvalue.Ret_Message; BadRequest.AccessChannel = "sms"; BadRequest.QueueNo = 1; BadRequest.RequestId = RQpack.RequestId; BadRequest.ReplayDesc = RQretuenvalue.Ret_Message_to_Client; BadRequest.ReplayTime = DateTime.Now; BadRequest.Status = 2; res = (new PartnerRequestRepo(db).Create(BadRequest).Success); if (res == false) { c2 = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo, "failed to create bad request [" + RQretuenvalue.Ret_Message_to_Client + "]", "error"); e.Result = c2; } if (!string.IsNullOrEmpty(RQretuenvalue.Ret_Message_to_Client)) { var outmessage = new SMSOut(); outmessage.Message = RQretuenvalue.Ret_Message_to_Client; outmessage.Receiver = RQpack.MobileNo; res = (new OutSMSRepo(db).Create(outmessage).Success); if (res == false) { c2 = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo, "failed to create sms to client [" + RQretuenvalue.Ret_Message_to_Client + "]", "error"); e.Result = c2; } } } else if (RQretuenvalue.Ret_ID == -2) { CurrentLogMessage c = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), RQpack.MobileNo, RQretuenvalue.Ret_Message, "partnererror"); e.Result = c; } }//res==true } delmsg = null; } catch (Exception ex) { CurrentLogMessage c1 = new CurrentLogMessage("", SharedParams.Short_Code.ToString(), "", ex.Message, "error"); WriteLog(c1); } } // bw_Delivery_DoWork