public async Task <ResponseStatus> sendsmstouser(string message, string userid) { ResponseStatus status = new ResponseStatus(); try { var user = appDbContex.Users.ToList(); foreach (var ls in user) { sendSMS.SendTextSms(message, "+91" + ls.PhoneNumber); var id = Guid.NewGuid(); SMSHistory sMSHistory = new SMSHistory { id = id.ToString(), vendorId = userid, message = message, mobileno = ls.PhoneNumber, createddt = DateTime.Now }; appDbContex.SMSHistories.Add(sMSHistory); await appDbContex.SaveChangesAsync(); } status.status = true; status.message = "Message sent successfully."; return(status); } catch (Exception ex) { throw ex; } }
public async Task <ResponseStatus> sendsms(sendSMSRequest sendSMSRequest) { ResponseStatus responseStatus = new ResponseStatus(); try { var mobileno = appDbContex.promotionalMobileNos.Where(a => a.vendorId == sendSMSRequest.vendorId).ToList(); foreach (var PhoneNo in mobileno) { sendSMS.SendTextSms(sendSMSRequest.message, "+91" + PhoneNo.mobileno); var id = Guid.NewGuid(); SMSHistory sMSHistory = new SMSHistory { id = id.ToString(), vendorId = sendSMSRequest.vendorId, message = sendSMSRequest.message, mobileno = PhoneNo.mobileno, createddt = DateTime.Now }; appDbContex.SMSHistories.Add(sMSHistory); await appDbContex.SaveChangesAsync(); } responseStatus.status = true; responseStatus.message = "Message sent successfully."; return(responseStatus); } catch (Exception ex) { throw ex; } }
void BindSession(string spNumber) { var session = SMSHistory.GetSession(spNumber); if (session != null) { gpSession.Text = spNumber + " 会话"; this.rtbSession.Text = ""; foreach (var s in session) { BindSession(s); } } }
void OnSend(TcpSocketClient client, byte[] buffers) { ThreadCalls(() => { try { var cmd = new BaseCommand(buffers); if (cmd.Command == Commands.Deliver) { var deliver = new Deliver(buffers); var sms = new SMS { SPNumber = deliver.SPNumber, UserNumber = deliver.UserNumber, Content = deliver.MessageContent, Time = DateTime.Now, Type = SMSTypes.SEND }; SMSHistory.Add(sms); //绑定会话组 BindGroup(deliver.SPNumber); //绑定会话 if (lbGroup.SelectedItem != null && lbGroup.SelectedItem.ToString() == cbbSPNumber.Text) { BindSession(sms); } else { lbGroup.SelectedItem = deliver.SPNumber; BindSession(deliver.SPNumber); } rtbContent.Text = ""; cbbSPNumber.Text = ""; PrintLog("发送一条新消息给 " + sms.SPNumber); MessageBox.Show(this, "发送成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } PrintLog("发送一条命令:" + Commands.GetString(cmd.Command)); } catch (Exception e) { PrintLog("发送消息出现错误: " + e.Message); } }); }
public int InsertSMSHistory(SMSHistory sh) { int i = 0; try { using (MySqlConnection con = new MySqlConnection(ConnectionString.con_string)) { using (MySqlCommand cmd = new MySqlCommand()) { cmd.CommandText = "INSERT INTO sms_history(sender_id,sender_name,class_id,class_name,section_id,section_name,cell,created_by,date_time,sms_type,msg) Values(@sender_id,@sender_name,@class_id,@class_name,@section_id,@section_name,@cell,@created_by,@date_time,@sms_type,@msg)"; cmd.Connection = con; //cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.Parameters.Add("@sender_id", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.sender_id; cmd.Parameters.Add("@sender_name", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.sender_name; cmd.Parameters.Add("@class_id", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.class_id; cmd.Parameters.Add("@class_name", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.class_name; cmd.Parameters.Add("@section_id", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.section_id; cmd.Parameters.Add("@section_name", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.section_name; cmd.Parameters.Add("@cell", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.cell; cmd.Parameters.Add("@msg", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.msg; cmd.Parameters.Add("@sms_type", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.sms_type; cmd.Parameters.Add("@created_by", MySql.Data.MySqlClient.MySqlDbType.VarChar).Value = sh.created_by; cmd.Parameters.Add("@date_time", MySql.Data.MySqlClient.MySqlDbType.DateTime).Value = sh.date_time; con.Open(); i = Convert.ToInt32(cmd.ExecuteNonQuery()); con.Close(); } } } catch (MySqlException ex) { throw ex; } return(i); }
public bool sendMsg(SMSQueue obj, BackgroundWorker worker, DoWorkEventArgs e) { try { bool isSend = false; i = 0; #region PDU Creation SmsSubmitPdu[] pdu; try { if (m_IsEncoded) { pdu = CreateConcatTextMessage(obj.sms_message, true, Convert.ToString("+92" + obj.receiver_cell_no)); } else { pdu = CreateConcatTextMessage(obj.sms_message, false, Convert.ToString("+92" + obj.receiver_cell_no)); } } catch (Exception ex) { return(false); } #endregion #region Message Sedning if (comm.IsConnected() && comm.IsOpen()) { comm.SendMessages(pdu); isSend = true; obj.sms_status = "Sent"; } else { Thread.Sleep(500); openPort(); isSend = false; obj.sms_status = "Not Sent"; Thread.Sleep(1000); return(false); } #endregion #region Insert History And Update queue sh = new SMSHistory(); sh.sender_id = obj.id.ToString(); sh.sender_name = obj.receiver_name; sh.class_id = obj.class_id.ToString(); sh.class_name = obj.class_name; sh.section_id = obj.section_id.ToString(); sh.section_name = obj.section_name; sh.cell = obj.receiver_cell_no; sh.msg = obj.sms_message; sh.sms_type = obj.sms_type; sh.created_by = obj.created_by; sh.date_time = DateTime.Now; if (miscDAL.InsertSMSHistory(sh) > 0) { if (miscDAL.UpdateSMSQueue(obj) > 0) { } else { //MessageBox.Show("Not updated sms queue"); } } else { //MessageBox.Show("Sms History not inserted"); } return(isSend); #endregion } catch (Exception ex) { return(false); } }
public SMSResult haisms() { // update regid firebase // /api/smsapi/haisms var history = new APIHistory() { Id = Guid.NewGuid().ToString(), CreateTime = DateTime.Now, APIUrl = "/api/smsapi/haisms", Sucess = 1 }; HttpRequestHeaders headers = Request.Headers; var authInfo = checkAuth(headers); if (authInfo.status == 0) { history.Sucess = 0; history.ReturnInfo = new JavaScriptSerializer().Serialize(authInfo); db.APIHistories.Add(history); db.SaveChanges(); return(authInfo); } else { var requestContent = Request.Content.ReadAsStringAsync().Result; var jsonserializer = new JavaScriptSerializer(); SMSHistory smsHistory = new SMSHistory() { CreateTime = DateTime.Now, Id = Guid.NewGuid().ToString() }; SMSResult result = new SMSResult() { status = 0, message = "" }; history.Content = requestContent; try { var paser = jsonserializer.Deserialize <SMSRequest>(requestContent); SMSContent content = analysisContent(paser.content, paser.phone); smsHistory.PhoneNumber = paser.phone; smsHistory.ContentSend = paser.content; if (content.status == 0) { result.status = 1; // sai cu phap result.message = "Cu phap nhan tin cua Quy Khach vua thuc hien khong dung. Chi tiet lien he NVTT hoac 1800577768"; } else { if (content.isAgency) { smsHistory.AgencyType = "CII"; result = checkContent(content); } else { smsHistory.AgencyType = "FARMER"; result = checkContentFarmer(content); } } } catch (Exception e) { result.status = 0; result.message = e.Message; } smsHistory.ContentReturn = result.message; db.SMSHistories.Add(smsHistory); history.ReturnInfo = new JavaScriptSerializer().Serialize(result); history.Sucess = result.status; db.APIHistories.Add(history); db.SaveChanges(); return(result); } }
private void sendMsg(SMSQueue obj, Modem comm, BackgroundWorker worker, DoWorkEventArgs e) { try { obj.sms_message = ValidateMessage(obj.sms_message); bool isSend = false; comm.IsFree = false; UpdateModemStatus(comm); message = comm.GsmCommMain.PortName + "-" + comm.TotalSmsSent + " IsFree=" + comm.IsFree + " Start Sending Message"; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); i = 0; SmsSubmitPdu[] pdu; if (m_IsEncoded) { pdu = CreateConcatTextMessage(obj.sms_message, true, Convert.ToString("+92" + obj.receiver_cell_no)); } else { pdu = CreateConcatTextMessage(obj.sms_message, false, Convert.ToString("+92" + obj.receiver_cell_no)); } for (int j = 0; j < pdu.Length; j++) { try { if (comm.GsmCommMain.IsConnected() && comm.GsmCommMain.IsOpen() && Modems.Count > 0) { comm.GsmCommMain.SendMessage(pdu[j], true); //comm.GsmCommMain.EnablePermanentSmsBatchMode(); Thread.Sleep(1000); isSend = true; m_TotalSmsSent++; if (j + 1 == pdu.Length) { if (comm.TotalSmsSent == 0) { comm.StartTime = DateTime.Now; } comm.IsFree = true; comm.TotalSmsSent = comm.TotalSmsSent + pdu.Length; UpdateModemStatus(comm); isWholeSent = true; obj.sms_status = "Sent"; obj.updated_date_time = DateTime.Now; obj.sender_com_port = comm.GsmCommMain.PortName; obj.sms_length = pdu.Length; //obj.sender_cell_no = comm.GsmCommMain.GetSmscAddress().Address; message = comm.GsmCommMain.PortName + "-" + comm.TotalSmsSent + " IsFree=True, Receiver=" + obj.receiver_cell_no + " Message:" + obj.sms_message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } } else { message = comm.GsmCommMain.PortName + "-" + comm.TotalSmsSent + " IsConnected=" + comm.GsmCommMain.IsConnected() + " IsOpen=" + comm.GsmCommMain.IsOpen(); AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); //j--; isSend = false; comm.IsFree = false; UpdateModemStatus(comm); obj.sms_status = "Not Sent"; Thread.Sleep(1000); if (!comm.GsmCommMain.IsOpen()) { OpenPort(comm.GsmCommMain.PortName); } //j--; } } catch (Exception ex) { if (ex.Message.Contains("Message service error 500 occurred.")) { try { Thread.Sleep(1000); comm.GsmCommMain.Close(); Modems.Remove(Modems.Where(x => x.GsmCommMain.PortName == comm.GsmCommMain.PortName).First()); message = comm.GsmCommMain.PortName + " Removed"; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } catch (Exception exx) { message = comm.GsmCommMain.PortName + " Removed Exception: " + exx.Message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } finally { CloseWindow(); } Thread.Sleep(1000); } //Access is denied. else if (ex.Message.Contains("Access is denied.")) { } else if (ex.Message.Contains("Unexpected response received from phone")) { //Unexpected response received from phone: warid comm.IsFree = true; if (comm.TotalSmsSent == 0) { comm.StartTime = DateTime.Now; } comm.TotalSmsSent = comm.TotalSmsSent + pdu.Length; UpdateModemStatus(comm); isSend = true; obj.sms_status = "Sent"; obj.updated_date_time = DateTime.Now; obj.sender_com_port = comm.GsmCommMain.PortName; obj.sms_length = pdu.Length; //obj.sender_cell_no = comm.GsmCommMain.GetSmscAddress().Address; message = comm.GsmCommMain.PortName + "-" + comm.TotalSmsSent + " IsFree=True, Receiver=" + obj.receiver_cell_no + " Message:" + obj.sms_message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } else if (ex.Message.Contains("No data received from phone after waiting for")) { try { Thread.Sleep(1000); comm.GsmCommMain.Close(); Modems.Remove(Modems.Where(x => x.GsmCommMain.PortName == comm.GsmCommMain.PortName).First()); message = comm.GsmCommMain.PortName + " Removed"; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } catch (Exception exx) { message = comm.GsmCommMain.PortName + " Removed Exception: " + exx.Message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } finally { CloseWindow(); } Thread.Sleep(1000); } else if (ex.Message.Contains("The character")) { //The character '' at position 10 does not exist in the GSM 7-bit default alphabet. try { Thread.Sleep(1000); comm.IsFree = true; UpdateModemStatus(comm); message = comm.GsmCommMain.PortName + " Invalid Character: " + ex.Message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } catch (Exception exm) { } finally { } } else { comm.IsFree = false; UpdateModemStatus(comm); isSend = false; obj.sms_status = "Not Sent"; } message = comm.GsmCommMain.PortName + "-" + comm.TotalSmsSent + " Exception:" + ex.Message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } } // saved to sms history table whether sent or not //change for queue if (isSend) { sh = new SMSHistory(); sh.sender_id = obj.id.ToString(); sh.sender_name = obj.receiver_name; sh.class_id = obj.class_id.ToString(); sh.class_name = obj.class_name; sh.section_id = obj.section_id.ToString(); sh.section_name = obj.section_name; sh.cell = obj.receiver_cell_no; sh.msg = obj.sms_message; sh.sms_type = obj.sms_type; sh.created_by = obj.created_by; sh.date_time = DateTime.Now; if (miscDAL.InsertSMSHistory(sh) > 0) { if (miscDAL.UpdateSMSQueue(obj) > 0) { } else { MessageBox.Show("Not updated sms queue"); } } else { MessageBox.Show("Sms History not inserted"); } } } catch (Exception ex) { if (ex.Message.Contains("The character")) { //The character '' at position 10 does not exist in the GSM 7-bit default alphabet. try { Thread.Sleep(1000); comm.IsFree = true; UpdateModemStatus(comm); message = comm.GsmCommMain.PortName + " Invalid Character: " + ex.Message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } catch (Exception exm) { } finally { } } else { message = comm.GsmCommMain.PortName + "-" + comm.TotalSmsSent + " Exception:" + ex.Message; AddLog(EventLevel.Warning.ToString(), DateTime.Now, EventSource.SendMessage.ToString(), message); } } }
void OnRead(TcpSocketClient client, byte[] buffers) { ThreadCalls(() => { try { var cmd = new BaseCommand(buffers); switch (cmd.Command) { case Commands.Bind_Resp: var bind_resp = new Bind_Resp(buffers); if (bind_resp.Result != CommandError.Success) { PrintLog("绑定验证失败:" + CommandError.GetMessage(bind_resp.Result)); Thread.Sleep(1000); client.Disconnect(); } break; case Commands.Deliver: var deliver = new Deliver(buffers); //添加接收记录 var sms = new SMS { SPNumber = deliver.SPNumber, UserNumber = deliver.UserNumber, Content = deliver.MessageContent, Time = DateTime.Now, Type = SMSTypes.RECEIVE }; SMSHistory.Add(sms); //绑定会话组 BindGroup(deliver.SPNumber); //绑定会话 if (lbGroup.SelectedItem != null && lbGroup.SelectedItem.ToString() == sms.SPNumber) { BindSession(sms); } else { lbGroup.SelectedItem = deliver.SPNumber; BindSession(deliver.SPNumber); } //新消息提醒 PrintLog("收到一条 " + sms.SPNumber + " 发来的新消息!"); //发送响应 client.Send(new Deliver_Resp { SequenceNumber = deliver.SequenceNumber, Result = CommandError.Success }.GetBytes()); break; case Commands.Deliver_Resp: var deliver_resp = new Deliver_Resp(buffers); if (deliver_resp.Result != CommandError.Success) { PrintLog("传送消息失败:" + CommandError.GetMessage(deliver_resp.Result)); } break; default: break; } PrintLog("接收一条命令:" + Commands.GetString(cmd.Command)); } catch (Exception e) { PrintLog("读取消息出现错误: " + e.Message); } }); }