Exemplo n.º 1
0
        public IHttpActionResult PostAdminSendMsg([FromBody] m_CustMessage value)
        {
            string clientHostname = HttpContext.Current.Request.UserHostName;
            string url            = HttpContext.Current.Request.Path;

            try
            {
                m_SMS010 sms = new m_SMS010();
                sms.CUST_NO     = value.cust_no;
                sms.CON_NO      = string.Empty;
                sms.SMS_NOTE    = value.message;
                sms.SENDER      = value.cust_no;
                sms.SENDER_TYPE = "SYSTEM";
                sms.READ_STATUS = "UNREAD";
                Notification noti = new Notification();
                sms.SMS_TIME  = DateTime.Now;
                sms.SMS010_PK = value.sms010_pk;
                chat.SendSmsByConnId(sms);
                monitor.sendMessage(url, clientHostname, value, new { request_status = "SUCCESS", desc = "Admin ส่งข้อความ", data = sms });
                return(Ok(new { code = 200, message = "ส่งข้อความสำเร็จ", data = sms }));
            }
            catch (Exception e)
            {
                monitor.sendMessage(url, clientHostname, value, new { Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Exemplo n.º 2
0
        public IHttpActionResult PostCustSendMsg([FromBody] m_CustMessage value)
        {
            string clientHostname = HttpContext.Current.Request.UserHostName;
            string url            = HttpContext.Current.Request.Path;

            try
            {
                m_SMS010 sms = new m_SMS010();
                sms.CUST_NO     = value.cust_no;
                sms.CON_NO      = string.Empty;
                sms.SMS_NOTE    = value.message;
                sms.SENDER      = value.cust_no;
                sms.SENDER_TYPE = "CUST";

                var lastMsg = user.getLastNotification(value.cust_no);
                if (lastMsg.SMS_NOTE != value.message)
                {
                    Notification noti    = new Notification();
                    var          lastSms = noti.createSms(sms);
                    sms.SMS010_PK   = lastSms;
                    sms.READ_STATUS = "UNREAD";
                    sms.SMS_TIME    = DateTime.Now;

                    var cust = user.getProfileById(value.cust_no);
                    payment.sendMessageToLine($"[{cust.CUST_NO.ToString()}] คุณ{cust.CUST_NAME} => {value.message}");
                    monitor.sendMessage(url, clientHostname, value, new { request_status = "SUCCESS", desc = "ลูกค้าส่งข้อความ", data = sms });
                }
                return(Ok(new { code = 200, message = "ส่งข้อความสำเร็จ", data = sms }));
            }
            catch (Exception e)
            {
                monitor.sendMessage(url, clientHostname, value, new { Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Exemplo n.º 3
0
        public void SendSmsByConnId(m_SMS010 value)
        {
            var context = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();

            using (OracleConnection conn = new OracleConnection(Database.conString))
            {
                try
                {
                    //if (conn.State == System.Data.ConnectionState.Open)
                    //    conn.Close();

                    conn.Open();
                    //conn.ConnectionString = Constants.OracleDb.Development.conString;
                    using (var cmd = new OracleCommand(SqlCmd.User.getConnIdByCustNo, conn)
                    {
                        CommandType = System.Data.CommandType.Text
                    })
                    {
                        cmd.CommandTimeout = 30;
                        cmd.Parameters.Add(new OracleParameter("cust_no", value.CUST_NO));
                        var reader = cmd.ExecuteReaderAsync();
                        reader.Result.Read();
                        if (reader.Result.HasRows)
                        {
                            var connectionId = reader.Result["CONN_ID"] == DBNull.Value ? string.Empty : (string)reader.Result["CONN_ID"];
                            context.Clients.Client(connectionId).sms(value);
                        }
                        reader.Dispose();
                    }
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
            //var context = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
            //oracle = new Database();
            //List<OracleParameter> parameter = new List<OracleParameter>
            //{
            //    new OracleParameter("cust_no", value.CUST_NO)
            //};
            //var reader = oracle.SqlQueryWithParams(SqlCmd.User.getConnIdByCustNo, parameter);
            //reader.Read();
            //var connectionId = (string)reader["CONN_ID"];
            //context.Clients.Client(connectionId).sms(value);
            //reader.Dispose();
            //oracle.OracleDisconnect();
        }
Exemplo n.º 4
0
        public int createSms(m_SMS010 value)
        {
            oracle = new Database();
            List <OracleParameter> parameter = new List <OracleParameter>
            {
                new OracleParameter(":cust_no", value.CUST_NO),
                new OracleParameter(":con_no", value.CON_NO),
                new OracleParameter(":sms_note", value.SMS_NOTE),
                new OracleParameter(":sender", value.SENDER),
                new OracleParameter(":sender_type", value.SENDER_TYPE),
                new OracleParameter
                {
                    ParameterName = "sms010_pk",
                    OracleDbType  = OracleDbType.Int32,
                    Direction     = ParameterDirection.Output
                }
            };
            var resInsert = oracle.SqlExecuteWithParams(SqlCmd.Notification.newSms, parameter);
            var lastSms   = Int32.Parse(resInsert.Parameters["sms010_pk"].Value.ToString());

            oracle.OracleDisconnect();
            return(lastSms);
        }
Exemplo n.º 5
0
        public void sendSmsAll()
        {
            var        context = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();
            MonitorHub monitor = new MonitorHub();

            using (OracleConnection conn = new OracleConnection(Database.conString))
            {
                try
                {
                    conn.Open();
                    using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn)
                    {
                        CommandType = System.Data.CommandType.Text
                    })
                    {
                        cmd3.Parameters.Add(new OracleParameter("msg", "เริ่มดึงข้อความ"));
                        cmd3.ExecuteNonQueryAsync();
                        cmd3.Dispose();
                    }
                    using (var cmd = new OracleCommand(SqlCmd.User.getAllSmsWithConnId, conn)
                    {
                        CommandType = System.Data.CommandType.Text
                    })
                    {
                        var reader            = cmd.ExecuteReader();
                        List <m_sendSms> data = new List <m_sendSms>();
                        while (reader.Read())
                        {
                            data.Add(new m_sendSms
                            {
                                SMS010_PK     = Int32.Parse(reader["SMS010_PK"].ToString()),
                                CUST_NO       = Int32.Parse(reader["CUST_NO"].ToString()),
                                CONN_ID       = reader["CONN_ID"] == DBNull.Value ? string.Empty : reader["CONN_ID"].ToString(),
                                DEVICE_STATUS = reader["DEVICE_STATUS"].ToString(),
                                SMS_NOTE      = reader["SMS_NOTE"] == DBNull.Value ? string.Empty : reader["SMS_NOTE"].ToString(),
                                CON_NO        = reader["CON_NO"] == DBNull.Value ? string.Empty : reader["CON_NO"].ToString(),
                                SMS_TIME      = (DateTime)reader["SMS_TIME"],
                                SENDER        = reader["SENDER"] == DBNull.Value ? 0 : Int32.Parse(reader["SENDER"].ToString()),
                                SENDER_TYPE   = reader["SENDER_TYPE"].ToString(),
                                SMS010_REF    = reader["SMS010_REF"] == DBNull.Value ? 0 : Int32.Parse(reader["SMS010_REF"].ToString()),
                                READ_STATUS   = reader["READ_STATUS"].ToString()
                            });
                        }
                        using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn)
                        {
                            CommandType = System.Data.CommandType.Text
                        })
                        {
                            cmd3.Parameters.Add(new OracleParameter("msg", "ดึงข้อความเสร็จ"));
                            cmd3.ExecuteNonQueryAsync();
                            cmd3.Dispose();
                        }
                        using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn)
                        {
                            CommandType = System.Data.CommandType.Text
                        })
                        {
                            cmd3.Parameters.Add(new OracleParameter("msg", "เริ่มส่งข้อความ"));
                            cmd3.ExecuteNonQueryAsync();
                            cmd3.Dispose();
                        }
                        if (data.Count != 0)
                        {
                            List <m_SMS010> sms = new List <m_SMS010>();
                            //using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn) { CommandType = System.Data.CommandType.Text })
                            //{
                            //    cmd3.Parameters.Add(new OracleParameter("msg", OracleDbType.Varchar2));
                            //    foreach (var s in data)
                            //    {
                            //        var temp = new m_SMS010
                            //        {
                            //            SMS010_PK = s.SMS010_PK,
                            //            CUST_NO = s.CUST_NO,
                            //            CON_NO = s.CON_NO,
                            //            SMS_NOTE = s.SMS_NOTE,
                            //            SMS_TIME = DateTime.Now,
                            //            SENDER = s.SENDER,
                            //            SENDER_TYPE = s.SENDER_TYPE,
                            //            SMS010_REF = s.SMS010_REF,
                            //            READ_STATUS = s.READ_STATUS
                            //        };
                            //        cmd3.Parameters[0].Value = temp.SMS_NOTE;
                            //        cmd3.ExecuteNonQueryAsync();
                            //        //using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn) { CommandType = System.Data.CommandType.Text })
                            //        //{
                            //        //    cmd3.Parameters.Add(new OracleParameter("msg", temp.SMS_NOTE));
                            //        //    cmd3.ExecuteNonQueryAsync();
                            //        //    cmd3.Dispose();
                            //        //}

                            //        //monitor.sendMessage(string.Empty, s.CONN_ID, new { cust_no = s.CUST_NO }, new { request_status = "SUCCESS", desc = "Admin ส่งข้อความ", data = temp });
                            //        //context.Clients.Client(s.CONN_ID).sms(temp);
                            //    }
                            //    cmd3.Dispose();
                            //}
                            foreach (var s in data)
                            {
                                var temp = new m_SMS010
                                {
                                    SMS010_PK   = s.SMS010_PK,
                                    CUST_NO     = s.CUST_NO,
                                    CON_NO      = s.CON_NO,
                                    SMS_NOTE    = s.SMS_NOTE,
                                    SMS_TIME    = DateTime.Now,
                                    SENDER      = s.SENDER,
                                    SENDER_TYPE = s.SENDER_TYPE,
                                    SMS010_REF  = s.SMS010_REF,
                                    READ_STATUS = s.READ_STATUS
                                };
                                //using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn) { CommandType = System.Data.CommandType.Text })
                                //{
                                //    cmd3.Parameters.Add(new OracleParameter("msg", temp.SMS_NOTE));
                                //    cmd3.ExecuteNonQueryAsync();
                                //    cmd3.Dispose();
                                //}

                                monitor.sendMessage(string.Empty, s.CONN_ID, new { cust_no = s.CUST_NO }, new { request_status = "SUCCESS", desc = "Admin ส่งข้อความ", data = temp });
                                context.Clients.Client(s.CONN_ID).sms(temp);
                            }

                            using (var cmd2 = new OracleCommand(SqlCmd.Notification.markToSent, conn)
                            {
                                CommandType = System.Data.CommandType.Text
                            })
                            {
                                cmd2.ExecuteNonQueryAsync();
                                cmd2.Parameters.Clear();
                            }
                        }
                        //using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn) { CommandType = System.Data.CommandType.Text })
                        //{
                        //    cmd3.Parameters.Add(new OracleParameter("msg", "insert ข้อความลง log_test เสร็จ"));
                        //    cmd3.ExecuteNonQueryAsync();
                        //    cmd3.Dispose();
                        //}
                        using (var cmd3 = new OracleCommand(SqlCmd.Log.logTest, conn)
                        {
                            CommandType = System.Data.CommandType.Text
                        })
                        {
                            cmd3.Parameters.Add(new OracleParameter("msg", "ส่งข้อความเสร็จ"));
                            cmd3.ExecuteNonQueryAsync();
                            cmd3.Dispose();
                        }
                        reader.Dispose();
                        cmd.Dispose();
                    }
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
Exemplo n.º 6
0
        public void sendSmsByCustNo(int cust_no)
        {
            var        context = GlobalHost.ConnectionManager.GetHubContext <ChatHub>();
            MonitorHub monitor = new MonitorHub();

            using (OracleConnection conn = new OracleConnection(Database.conString))
            {
                try
                {
                    conn.Open();
                    using (var cmd = new OracleCommand(SqlCmd.User.getSmsWithConnId, conn)
                    {
                        CommandType = System.Data.CommandType.Text
                    })
                    {
                        cmd.Parameters.Add(new OracleParameter("cust_no", cust_no));
                        var reader            = cmd.ExecuteReader();
                        List <m_sendSms> data = new List <m_sendSms>();
                        while (reader.Read())
                        {
                            data.Add(new m_sendSms
                            {
                                SMS010_PK     = Int32.Parse(reader["SMS010_PK"].ToString()),
                                CUST_NO       = Int32.Parse(reader["CUST_NO"].ToString()),
                                CONN_ID       = reader["CONN_ID"] == DBNull.Value ? string.Empty : reader["CONN_ID"].ToString(),
                                DEVICE_STATUS = reader["DEVICE_STATUS"].ToString(),
                                SMS_NOTE      = reader["SMS_NOTE"] == DBNull.Value ? string.Empty : reader["SMS_NOTE"].ToString(),
                                CON_NO        = reader["CON_NO"] == DBNull.Value ? string.Empty : reader["CON_NO"].ToString(),
                                SMS_TIME      = (DateTime)reader["SMS_TIME"],
                                SENDER        = reader["SENDER"] == DBNull.Value ? 0 : Int32.Parse(reader["SENDER"].ToString()),
                                SENDER_TYPE   = reader["SENDER_TYPE"].ToString(),
                                SMS010_REF    = reader["SMS010_REF"] == DBNull.Value ? 0 : Int32.Parse(reader["SMS010_REF"].ToString()),
                                READ_STATUS   = reader["READ_STATUS"].ToString()
                            });
                        }
                        if (data.Count != 0)
                        {
                            List <m_SMS010> sms = new List <m_SMS010>();
                            foreach (var s in data)
                            {
                                var temp = new m_SMS010
                                {
                                    SMS010_PK   = s.SMS010_PK,
                                    CUST_NO     = s.CUST_NO,
                                    CON_NO      = s.CON_NO,
                                    SMS_NOTE    = s.SMS_NOTE,
                                    SMS_TIME    = DateTime.Now,
                                    SENDER      = s.SENDER,
                                    SENDER_TYPE = s.SENDER_TYPE,
                                    SMS010_REF  = s.SMS010_REF,
                                    READ_STATUS = s.READ_STATUS
                                };
                                var connectionId = s.CONN_ID;
                                monitor.sendMessage(string.Empty, s.CONN_ID, new { cust_no = cust_no }, new { request_status = "SUCCESS", desc = "Admin ส่งข้อความ", data = temp });
                                context.Clients.Client(connectionId).sms(temp);
                                context.Clients.Client(s.CONN_ID).sms(temp);
                            }
                        }
                        reader.Dispose();
                        cmd.Dispose();
                        //cmd.Parameters.Add(new OracleParameter("cust_no", cust_no));
                        //var reader = cmd.ExecuteReader();
                        //reader.Read();
                        //List<m_SMS010> data = new List<m_SMS010>();
                        //while (reader.Read())
                        //{
                        //    data.Add(new m_SMS010
                        //    {
                        //        SMS010_PK = Int32.Parse(reader["SMS010_PK"].ToString()),
                        //        CUST_NO = Int32.Parse(reader["CUST_NO"].ToString()),
                        //        CON_NO = reader["CON_NO"] == DBNull.Value ? string.Empty : (string)reader["CON_NO"],
                        //        SMS_NOTE = reader["SMS_NOTE"] == DBNull.Value ? string.Empty : (string)reader["SMS_NOTE"],
                        //        SMS_TIME = (DateTime)reader["SMS_TIME"],
                        //        SENDER = reader["SENDER"] == DBNull.Value ? null : (int?)Int32.Parse(reader["SENDER"].ToString()),
                        //        SENDER_TYPE = (string)reader["SENDER_TYPE"],
                        //        SMS010_REF = reader["SMS010_REF"] == DBNull.Value ? null : (int?)Int32.Parse(reader["SMS010_REF"].ToString()),
                        //        READ_STATUS = (string)reader["READ_STATUS"]
                        //    });
                        //}
                        //if(data.Count != 0)
                        //{
                        //    using (var cmd2 = new OracleCommand(SqlCmd.User.getConnIdByCustNo, conn) { CommandType = System.Data.CommandType.Text })
                        //    {
                        //        foreach(var msg in data)
                        //        {
                        //            cmd2.Parameters.Clear();
                        //            cmd2.Parameters.Add(new OracleParameter("cust_no", msg.CUST_NO));
                        //            var reader2 = cmd2.ExecuteReader();
                        //            reader2.Read();
                        //            if (reader2.HasRows)
                        //            {
                        //                if(reader2["CONN_ID"] != DBNull.Value)
                        //                {
                        //                    var connectionId = reader2["CONN_ID"] == DBNull.Value ? string.Empty : (string)reader2["CONN_ID"];
                        //                    context.Clients.Client(connectionId).sms(msg);
                        //                }
                        //            }
                        //        }
                        //    }
                        //}
                        //reader.Dispose();
                        //cmd.Dispose();
                    }
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }
Exemplo n.º 7
0
        public IHttpActionResult PostWebhook([FromBody] lineData value)
        {
            Line line = new Line();

            foreach (var e in value.events)
            {
                if (e.type == "message")
                {
                    if (e.message.type == "text")
                    {
                        var prof = line.getProfileByUserId(e.source.userId);
                        if (prof != null)
                        {
                            m_SMS010 sms = new m_SMS010();
                            sms.CUST_NO     = prof.CUST_NO;
                            sms.CON_NO      = string.Empty;
                            sms.SMS_NOTE    = e.message.text;
                            sms.SENDER      = prof.CUST_NO;
                            sms.SENDER_TYPE = "CUST";
                            Notification noti    = new Notification();
                            var          lastSms = noti.createSms(sms);
                        }
                        if (e.message.text == "ลงทะเบียน")
                        {
                            var process = line.getProcessByUserId(e.source.userId);
                            if (process == null)
                            {
                                line.setRegister(e.source.userId, "PENDING", "First register", "SUCCESS", e.message.text);
                                line.sendMessageUserId(e.source.userId, "กรุณากรอกเลขประจำตัวประชาชน");
                            }
                            else
                            {
                                if (process.PROCESS == "REGISTER")
                                {
                                    if (process.PROCESS_STATUS == "SUCCESS")
                                    {
                                        line.sendMessageUserId(e.source.userId, "ข้อมูลของคุณได้รับการลงทะเบียนแล้ว");
                                    }
                                    else
                                    {
                                        if (process.ACTION == "First register")
                                        {
                                            line.sendMessageUserId(e.source.userId, "กรุณากรอกเลขประจำตัวประชาชน");
                                        }
                                        else if (process.ACTION == "Input citizen_no")
                                        {
                                            if (process.ACTION_STATUS == "FAILED")
                                            {
                                                line.sendMessageUserId(e.source.userId, "กรุณากรอกเลขประจำตัวประชาชน");
                                            }
                                            else if (process.ACTION_STATUS == "SUCCESS")
                                            {
                                                line.sendMessageUserId(e.source.userId, "กรุณากรอกหมายเลขโทรศัพท์");
                                            }
                                        }
                                        else if (process.ACTION == "Input phone_no")
                                        {
                                            if (process.ACTION_STATUS == "FAILED")
                                            {
                                                line.sendMessageUserId(e.source.userId, "กรุณากรอกหมายเลขโทรศัพท์");
                                            }
                                            else if (process.ACTION_STATUS == "SUCCESS")
                                            {
                                                line.sendMessageUserId(e.source.userId, "ข้อมูลของคุณได้รับการลงทะเบียนแล้ว");
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (line.IsNumeric(e.message.text))
                            {
                                if (e.message.text.Length == 13)
                                {
                                    var process = line.getProcessByUserId(e.source.userId);
                                    if (process != null)
                                    {
                                        if (process.PROCESS == "REGISTER")
                                        {
                                            if (process.PROCESS_STATUS == "PENDING")
                                            {
                                                if (process.ACTION == "First register")
                                                {
                                                    var profile = user.getProfileByCitizenNo(e.message.text);
                                                    if (profile == null)
                                                    {
                                                        line.setRegister(e.source.userId, "PENDING", "Input citizen_no", "FAILED", e.message.text);
                                                        line.sendMessageUserId(e.source.userId, "ไม่พบเลขประจำตัวประชาชนของคุณในระบบ");
                                                    }
                                                    else
                                                    {
                                                        line.setRegister(e.source.userId, "PENDING", "Input citizen_no", "SUCCESS", e.message.text);
                                                        line.sendMessageUserId(e.source.userId, "กรุณากรอกหมายเลขโทรศัพท์");
                                                    }
                                                }
                                                else if (process.ACTION == "Input citizen_no" && process.ACTION_STATUS == "FAILED")
                                                {
                                                    var profile = user.getProfileByCitizenNo(e.message.text);
                                                    if (profile == null)
                                                    {
                                                        line.setRegister(e.source.userId, "PENDING", "Input citizen_no", "FAILED", e.message.text);
                                                        line.sendMessageUserId(e.source.userId, "ไม่พบเลขประจำตัวประชาชนของคุณในระบบ");
                                                    }
                                                    else
                                                    {
                                                        line.setRegister(e.source.userId, "PENDING", "Input citizen_no", "SUCCESS", e.message.text);
                                                        line.sendMessageUserId(e.source.userId, "กรุณากรอกหมายเลขโทรศัพท์");
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                else if (e.message.text.Length == 10)
                                {
                                    var process = line.getProcessByUserId(e.source.userId);
                                    if (process != null)
                                    {
                                        if (process.PROCESS == "REGISTER")
                                        {
                                            if (process.PROCESS_STATUS == "PENDING")
                                            {
                                                if (process.ACTION == "Input citizen_no" && process.ACTION_STATUS == "SUCCESS")
                                                {
                                                    var profile = user.getProfileByPhoneNO(e.message.text);
                                                    if (profile == null)
                                                    {
                                                        line.setRegister(e.source.userId, "PENDING", "Input phone_no", "FAILED", e.message.text);
                                                        line.sendMessageUserId(e.source.userId, "ไม่หมายเลขโทรศัพท์ของคุณในระบบ");
                                                    }
                                                    else
                                                    {
                                                        line.setRegister(e.source.userId, "SUCCESS", "Input phone_no", "SUCCESS", e.message.text);
                                                        line.registerUserId(e.source.userId, profile.CUST_NO);
                                                        line.sendMessageUserId(e.source.userId, $"ยินดีต้อนรับคุณ{profile.CUST_NAME}");
                                                    }
                                                }
                                                else if (process.ACTION == "Input phone_no" && process.ACTION_STATUS == "FAILED")
                                                {
                                                    var profile = user.getProfileByPhoneNO(e.message.text);
                                                    if (profile == null)
                                                    {
                                                        line.setRegister(e.source.userId, "PENDING", "Input phone_no", "FAILED", e.message.text);
                                                        line.sendMessageUserId(e.source.userId, "ไม่พบเลขประจำตัวประชาชนของคุณในระบบ");
                                                    }
                                                    else
                                                    {
                                                        line.setRegister(e.source.userId, "SUCCESS", "Input phone_no", "SUCCESS", e.message.text);
                                                        line.registerUserId(e.source.userId, profile.CUST_NO);
                                                        line.sendMessageUserId(e.source.userId, $"ยินดีต้อนรับคุณ{profile.CUST_NAME}");
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            return(Ok());
        }