public OpertionResult Create(SMSIn sms) { try { #region Parameters var parameters = new List <OracleParameter> { new OracleParameter { ParameterName = "retVal", OracleDbType = OracleDbType.Int32, Direction = ParameterDirection.ReturnValue }, new OracleParameter { ParameterName = "v_reciever", OracleDbType = OracleDbType.Varchar2, Value = sms.Receiver }, new OracleParameter { ParameterName = "v_sender", OracleDbType = OracleDbType.Varchar2, Value = sms.Sender }, new OracleParameter { ParameterName = "v_message", OracleDbType = OracleDbType.NVarchar2, Value = sms.Message }, new OracleParameter { ParameterName = "v_ref_no", OracleDbType = OracleDbType.Int32, Value = sms.RefNo }, new OracleParameter { ParameterName = "v_lang", OracleDbType = OracleDbType.Varchar2, Value = sms.Lang } }; #endregion db.ExecuteStoredProc("pk_infra.fn_create_in_sms", 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); } }
public async Task <List <SMSIn> > GetSMSMessagesAsync(string mobileNo, string Msg, bool IncludeDates, DateTime?startDate, DateTime?endDate) { #region Parameters var parameters = new List <OracleParameter>(); var whereCluase = new StringBuilder(); if (!string.IsNullOrEmpty(mobileNo)) { whereCluase.Append(" WHERE sender = :mobileNo"); var p = new OracleParameter { ParameterName = "mobileNo", OracleDbType = OracleDbType.Varchar2, Value = mobileNo }; parameters.Add(p); } if (!string.IsNullOrEmpty(Msg)) { whereCluase.Append(whereCluase.Length > 0 ? " AND message LIKE '%' || :Msg || '%' " : " WHERE message LIKE '%' || :Msg || '%' "); var p = new OracleParameter { ParameterName = "Msg", OracleDbType = OracleDbType.Varchar2, Value = Msg }; parameters.Add(p); } //if (IncludeDates) { if (startDate > DateTime.MinValue && startDate != null) { whereCluase.Append(whereCluase.Length > 0 ? " AND createdon >= :StartDate" : " WHERE createdon >= :StartDate"); var p = new OracleParameter { ParameterName = "StartDate", OracleDbType = OracleDbType.Date, Value = startDate }; parameters.Add(p); } if (endDate > DateTime.MinValue && endDate != null) { whereCluase.Append(whereCluase.Length > 0 ? " AND createdon <= :EndDate" : " WHERE createdon <= :EndDate"); var p = new OracleParameter { ParameterName = "EndDate", OracleDbType = OracleDbType.Date, Value = endDate }; parameters.Add(p); } } #endregion string strSql = $"select * from sms_in {whereCluase} order by createdon"; DataTable masterDataTable; masterDataTable = await db.GetDataAsync(strSql, parameters); if (masterDataTable == null) { return(null); } if (masterDataTable.Rows.Count == 0) { return(null); } var results = new List <SMSIn>(); foreach (DataRow row in masterDataTable.Rows) { var obj = new SMSIn(); obj.Id = row["in_no"] == DBNull.Value ? 0 : int.Parse(row["in_no"].ToString()); obj.CreatedOn = row["createdon"] == DBNull.Value ? DateTime.MinValue : DateTime.Parse(row["createdon"].ToString()); obj.Message = row["message"] == DBNull.Value ? string.Empty : row["message"].ToString(); obj.Receiver = row["reciever"] == DBNull.Value ? string.Empty : row["reciever"].ToString(); obj.Sender = row["sender"] == DBNull.Value ? string.Empty : row["sender"].ToString(); obj.Lang = row["lang"] == DBNull.Value ? string.Empty : row["lang"].ToString(); obj.RefNo = row["ref_no"] == DBNull.Value ? 0 : int.Parse(row["ref_no"].ToString()); results.Add(obj); } return(results); }