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;
            }
        }
Пример #3
0
        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);
                }
            }
        }
Пример #4
0
        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);
                }
            });
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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);
            }
        }
Пример #8
0
        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);
                }
            }
        }
Пример #9
0
        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);
                }
            });
        }