예제 #1
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 }));
            }
        }
예제 #2
0
        public IHttpActionResult GetLogout(int cust_no)
        {
            //m_LogReg mlog = new m_LogReg();
            string IPAddress = HttpContext.Current.Request.UserHostAddress;
            string url       = HttpContext.Current.Request.Path;

            try
            {
                _user.logout(cust_no);
                monitor.sendMessage(url, IPAddress, cust_no, new { code = 200, message = "ออกจากระบบสำเร็จ" });
                return(Ok(new { code = 200, message = "ออกจากระบบสำเร็จ" }));
            }
            catch
            {
                monitor.sendMessage(url, IPAddress, cust_no, new { code = 411, message = "ออกจากระบบไม่สำเร็จ" });
                return(Ok(new { code = 411, message = "ออกจากระบบไม่สำเร็จ" }));
            }
        }
예제 #3
0
        public void sendSmsById(long id)
        {
            int total = 0, sent = 0, success = 0, fail = 0;

            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.Line.getSmsByIdWithUserId, conn)
                    {
                        CommandType = System.Data.CommandType.Text
                    })
                    {
                        cmd.Parameters.Add("sms010_pk", id);
                        var reader = cmd.ExecuteReader();
                        List <m_sendSmsLine> data = new List <m_sendSmsLine>();
                        while (reader.Read())
                        {
                            data.Add(new m_sendSmsLine
                            {
                                SMS010_PK    = Int32.Parse(reader["SMS010_PK"].ToString()),
                                CUST_NO      = Int32.Parse(reader["CUST_NO"].ToString()),
                                LINE_USER_ID = reader["LINE_USER_ID"] == DBNull.Value ? string.Empty : reader["LINE_USER_ID"].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)
                        {
                            total = data.Count;
                            bool res = false;
                            var  msg = data.LastOrDefault();
                            res = sendMessageUserId(msg.LINE_USER_ID, msg.SMS_NOTE);
                            sent++;
                            if (res == true)
                            {
                                success++;
                            }
                            else
                            {
                                fail++;
                            }

                            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", "ส่งข้อความเสร็จ"));
                            cmd3.ExecuteNonQueryAsync();
                            cmd3.Dispose();
                            monitor.sendMessage("/api/admin/sendmessageall/line", "localhost", "", new { totalSms = total, sentSms = sent, success = success, fail = fail });
                        }
                        reader.Dispose();
                        cmd.Dispose();
                    }
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
        }