public IHttpActionResult GetPaymentStatus(int order_no)
        {
            var setting        = (AppSettingsSection)WebConfigurationManager.OpenWebConfiguration("~").GetSection("appSettings");
            var appService     = setting.Settings["AppService"].Value;
            var paymentService = setting.Settings["PaymentService"].Value;

            if (appService == "False" || paymentService == "False")
            {
                return(Unauthorized());
            }
            string  clientHostname = HttpContext.Current.Request.UserHostName;
            string  url            = HttpContext.Current.Request.Path;
            Payment payment        = new Payment();

            try
            {
                var transaction      = payment.getTransactionByOrderNo(order_no);
                PaymentStatusRes res = payment.getPaymentStatus(transaction.TRANS_NO);
                return(Ok(new { code = 200, message = "ตรวจสอบรายการชำระสำเร็จ", data = res }));
            }
            catch (Exception e)
            {
                mlog      = new m_LogReq();
                mlog.note = e.Message;
                mlog.url  = "api/authen/newpayment2";
                log.logRequest(mlog);
                monitor.sendMessage(url, clientHostname, new { trans_no = order_no }, new { request_status = "FAILURE", Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Beispiel #2
0
        public IHttpActionResult GetSms(int id)
        {
            //var setting = (AppSettingsSection)WebConfigurationManager.OpenWebConfiguration("~").GetSection("appSettings");
            //var appService = setting.Settings["AppService"].Value;
            //var smsService = setting.Settings["SmsService"].Value;
            //if (appService == "False" || smsService == "False")
            //    return Unauthorized();
            //User cust = new User();
            m_LogReq mlog;
            string   IPAddress = HttpContext.Current.Request.UserHostAddress;
            string   url       = HttpContext.Current.Request.Path;

            try
            {
                var app_version = _user.getAppVersionByCust_no(id);
                var result      = _user.getProfileById(id);
                if (result != null && result.CUST_NO != 0)
                {
                    var sms = _user.getNotification(id);
                    _user.updateReadSms(id);
                    if (app_version < 3.2)
                    {
                        sms.RemoveAll(s => s.MSG_TYPE == "IMAGE");
                    }
                    mlog         = new m_LogReq();
                    mlog.cust_no = id;
                    //mlog.device_id = ;
                    mlog.tel = result.TEL;
                    // mlog.serial_sim = serial_sim;
                    mlog.ip_addr = IPAddress;
                    mlog.action  = "RETRIEVE SMS";
                    mlog.status  = "SUCCESS";
                    mlog.note    = "ดึงข้อมูล SMS สำเร็จ";
                    log.logSignin(mlog);
                    monitor.sendMessage(url, IPAddress, new { id = id }, new { data = sms });
                    return(Ok(new { code = 200, message = "ดึงข้อมูล Sms สำเร็จ", data = sms }));
                }
                else
                {
                    //mlog = new m_LogReq();
                    //mlog.ip_addr = IPAddress;
                    //mlog.note = "มีคนพยายามแอบอ้างเข้าถึงข้อมูล SMS ของลูกค้าโดยไม่ได้รับอนุญาต";
                    //mlog.url = "api/customer/sms";
                    //log.logRequest(mlog);
                    monitor.sendMessage(url, IPAddress, new { id = id }, new { Message = "Not found customer!" });
                    return(Ok(new { code = 400, message = "ไม่พบข้อมูลลูกค้าในระบบ", data = result }));
                }
            }
            catch (Exception e)
            {
                mlog         = new m_LogReq();
                mlog.ip_addr = IPAddress;
                mlog.note    = e.Message;
                mlog.url     = "api/customer/sms";
                log.logRequest(mlog);
                monitor.sendMessage(url, IPAddress, new { id = id }, new { Type = "Error", Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Beispiel #3
0
        public void logSignin(m_LogReq log)
        {
            using (OracleConnection conn = new OracleConnection(Database.conString))
            {
                try
                {
                    conn.Open();
                    using (var cmd = new OracleCommand(SqlCmd.Log.logSignin, conn)
                    {
                        CommandType = CommandType.Text
                    })
                    {
                        cmd.Parameters.Add(new OracleParameter("cust_no", log.cust_no));
                        cmd.Parameters.Add(new OracleParameter("device_id", log.device_id));
                        cmd.Parameters.Add(new OracleParameter("tel", log.tel));
                        cmd.Parameters.Add(new OracleParameter("serial_sim", log.serial_sim));
                        cmd.Parameters.Add(new OracleParameter("ip_addr", log.ip_addr));
                        cmd.Parameters.Add(new OracleParameter("action", log.action));
                        cmd.Parameters.Add(new OracleParameter("status", log.status));
                        cmd.Parameters.Add(new OracleParameter("note", log.note));

                        cmd.Parameters.Add(new OracleParameter("brand", log.brand));
                        cmd.Parameters.Add(new OracleParameter("model", log.model));
                        cmd.Parameters.Add(new OracleParameter("app_version", log.app_version));
                        cmd.Parameters.Add(new OracleParameter("api", log.api_version));

                        cmd.ExecuteNonQueryAsync();
                        cmd.Dispose();
                    }
                }
                finally
                {
                    conn.Close();
                    conn.Dispose();
                }
            }
            //oracle = new Database();
            //List<OracleParameter> parameter = new List<OracleParameter>
            //{
            //    new OracleParameter("cust_no", log.cust_no),
            //    new OracleParameter("device_id", log.device_id),
            //    new OracleParameter("tel", log.tel),
            //    new OracleParameter("serial_sim", log.serial_sim),
            //    new OracleParameter("ip_addr", log.ip_addr),
            //    new OracleParameter("action", log.action),
            //    new OracleParameter("status", log.status),
            //    new OracleParameter("note", log.note)
            //};
            //oracle.SqlExecuteWithParams(SqlCmd.Log.logSignin, parameter);
        }
Beispiel #4
0
        public IHttpActionResult GetContract(int id)
        {
            //User cust = new User();
            //var setting = (AppSettingsSection)WebConfigurationManager.OpenWebConfiguration("~").GetSection("appSettings");
            //var appService = setting.Settings["AppService"].Value;
            //var paymentService = setting.Settings["PaymentService"].Value;
            //if (appService == "False" || paymentService == "False")
            //    return Unauthorized();
            m_LogReq mlog;
            string   IPAddress = HttpContext.Current.Request.UserHostAddress;
            string   url       = HttpContext.Current.Request.Path;

            try
            {
                var result = _user.getProfileById(id);
                if (result != null && result.CUST_NO != 0)
                {
                    var contract = _user.getContract(id);
                    monitor.sendMessage(url, IPAddress, new { id = id }, contract);
                    return(Ok(new { code = 200, message = "ดึงข้อมูลสัญญาสำเร็จ", data = contract }));
                }
                else
                {
                    //mlog = new m_LogReq();
                    //mlog.ip_addr = IPAddress;
                    //mlog.note = "มีคนพยายามแอบอ้างเข้าถึงข้อมูลสัญญาของลูกค้าโดยไม่ได้รับอนุญาต";
                    //mlog.url = "api/customer/contract";
                    //log.logRequest(mlog);
                    monitor.sendMessage(url, IPAddress, new { id = id }, new { Message = "Not found customer!" });
                    return(Ok(new { code = 400, message = "ไม่พบข้อมูลลูกค้าในระบบ", data = result }));
                }
            }
            catch (Exception e)
            {
                mlog         = new m_LogReq();
                mlog.ip_addr = IPAddress;
                mlog.note    = e.Message;
                mlog.url     = "api/customer/contract";
                log.logRequest(mlog);
                monitor.sendMessage(url, IPAddress, new { id = id }, new { Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Beispiel #5
0
        public IHttpActionResult PostMarktoRead([FromBody] m_CustReadMsg value)
        {
            m_LogReq mlog;
            string   IPAddress = HttpContext.Current.Request.UserHostAddress;
            string   url       = HttpContext.Current.Request.Path;

            try
            {
                var result = _user.getProfileById(value.cust_no);
                if (result != null && result.CUST_NO != 0)
                {
                    _user.readSms(value);
                    monitor.sendMessage(url, IPAddress, value, value);
                    return(Ok(new { code = 200, message = "อัพเดท sms สำเร็จ", data = value }));
                }
                else
                {
                    //mlog = new m_LogReq();
                    //mlog.ip_addr = IPAddress;
                    //mlog.note = "มีคนพยายามแอบอ้างเข้าถึงข้อมูล SMS ของลูกค้าโดยไม่ได้รับอนุญาต";
                    //mlog.url = "api/customer/sms/marktoread";
                    //log.logRequest(mlog);
                    monitor.sendMessage(url, IPAddress, value, new { Message = "Not found customer!" });
                    return(Ok(new { code = 400, message = "ไม่พบข้อมูลลูกค้าในระบบ", data = result }));
                }
            }
            catch (Exception e)
            {
                mlog         = new m_LogReq();
                mlog.ip_addr = IPAddress;
                mlog.note    = e.Message;
                mlog.url     = "api/customer/sms/marktoread";
                log.logRequest(mlog);
                monitor.sendMessage(url, IPAddress, value, new { Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Beispiel #6
0
 //private Database oracle;
 public void logRequest(m_LogReq log)
 {
     using (OracleConnection conn = new OracleConnection(Database.conString))
     {
         try
         {
             conn.Open();
             using (var cmd = new OracleCommand(SqlCmd.Log.logReq, conn)
             {
                 CommandType = System.Data.CommandType.Text
             })
             {
                 cmd.Parameters.Add(new OracleParameter("note", log.note));
                 cmd.Parameters.Add(new OracleParameter("cust_no", log.cust_no));
                 cmd.Parameters.Add(new OracleParameter("device_id", log.device_id));
                 cmd.Parameters.Add(new OracleParameter("ip_addr", log.ip_addr));
                 cmd.Parameters.Add(new OracleParameter("url", log.url));
                 cmd.ExecuteNonQueryAsync();
                 cmd.Dispose();
             }
         }
         finally
         {
             conn.Close();
             conn.Dispose();
         }
     }
     //oracle = new Database();
     //List<OracleParameter> parameter = new List<OracleParameter>();
     //parameter.Add(new OracleParameter("note", log.note));
     //parameter.Add(new OracleParameter("cust_no", log.cust_no));
     //parameter.Add(new OracleParameter("device_id", log.device_id));
     //parameter.Add(new OracleParameter("ip_addr", log.ip_addr));
     //parameter.Add(new OracleParameter("url", log.url));
     //oracle.SqlExecuteWithParams(SqlCmd.Log.logReq, parameter);
     //oracle.OracleDisconnect();
 }
Beispiel #7
0
        public IHttpActionResult PostRegister([FromBody] m_Register data)
        {
            m_LogReq mlog = new m_LogReq();
            //m_LogReg mlog = new m_LogReg();
            string IPAddress = HttpContext.Current.Request.UserHostAddress;
            string url       = HttpContext.Current.Request.Path;

            try
            {
                //var setting = (AppSettingsSection)WebConfigurationManager.OpenWebConfiguration("~").GetSection("appSettings");
                //var appService = setting.Settings["AppService"].Value;
                //if (appService == "False")
                //    return Unauthorized();
                data.ip_addr = IPAddress;

                int cust_no;

                if (data.cust_no != 0)
                {
                    cust_no = data.cust_no;
                }
                else
                {
                    cust_no = _user.getCustNoByPhoneNo(data.phone_no);
                }

                if (cust_no == 0)
                {
                    mlog.cust_no     = 0;
                    mlog.device_id   = data.device_id;
                    mlog.tel         = data.phone_no;
                    mlog.serial_sim  = data.serial_sim;
                    mlog.ip_addr     = IPAddress;
                    mlog.action      = "REGISTER";
                    mlog.status      = "FAIL";
                    mlog.note        = "ไม่พบหมายเลขโทรศัพท์ลูกค้าในระบบ";
                    mlog.brand       = data.brand;
                    mlog.model       = data.model;
                    mlog.app_version = data.app_version;
                    mlog.api_version = data.api_version;
                    //mlog.brand = data.brand;
                    //mlog.model = data.model;
                    //mlog.api_version = data.api_version;
                    //log.logSignup(mlog);
                    log.logSignin(mlog);
                    monitor.sendMessage(url, IPAddress, data, new { code = 405, message = "ไม่พบหมายเลขโทรศัพท์ลูกค้าในระบบ!", data = new m_Customer() });
                    return(Ok(new { code = 405, message = "ไม่พบหมายเลขโทรศัพท์ลูกค้าในระบบ!", data = new m_Customer() }));
                }
                var result2 = _user.getProfileById(cust_no);
                //if (result == null)
                //{
                //    mlog.cust_no = 0;
                //    mlog.device_id = data.device_id;
                //    mlog.tel = data.phone_no;
                //    mlog.serial_sim = data.serial_sim;
                //    mlog.ip_addr = IPAddress;
                //    mlog.action = "REGISTER";
                //    mlog.status = "FAIL";
                //    mlog.note = "ไม่พบเลขประจำตัวประชาชนลูกค้าในระบบ";
                //    log.logSignin(mlog);
                //    monitor.sendMessage(url, IPAddress, data, new { code = 406, message = "ไม่พบเลขประจำตัวประชาชนของลูกค้าในระบบ!", data = result });
                //    return Ok(new { code = 406, message = "ไม่พบเลขประจำตัวประชาชนของลูกค้าในระบบ!", data = result });
                //}
                if (result2 == null)
                {
                    mlog.cust_no     = 0;
                    mlog.device_id   = data.device_id;
                    mlog.tel         = data.phone_no;
                    mlog.serial_sim  = data.serial_sim;
                    mlog.ip_addr     = IPAddress;
                    mlog.action      = "REGISTER";
                    mlog.status      = "FAIL";
                    mlog.note        = "ไม่พบหมายเลขโทรศัพท์ลูกค้าในระบบ";
                    mlog.brand       = data.brand;
                    mlog.model       = data.model;
                    mlog.api_version = data.api_version;
                    mlog.app_version = data.app_version;
                    //mlog.brand = data.brand;
                    //mlog.model = data.model;
                    //mlog.api_version = data.api_version;
                    //log.logSignup(mlog);
                    log.logSignin(mlog);
                    monitor.sendMessage(url, IPAddress, data, new { code = 405, message = "ไม่พบหมายเลขโทรศัพท์ลูกค้าในระบบ!", data = result2 });
                    return(Ok(new { code = 405, message = "ไม่พบหมายเลขโทรศัพท์ลูกค้าในระบบ!", data = result2 }));
                }
                else
                {
                    var broadcast = _user.getBroadcast();
                    var version   = _user.getAppVersion(data.serial_sim);
                    var chat      = _user.getChatOn();

                    var currentDevice = _user.checkCurrentDevice(data.device_id);
                    if (currentDevice != null)
                    {
                        _user.registerCurrentDevice(data, result2.CUST_NO);
                        //Notification otp = new Notification();
                        //otp.sendOTP(result.CUST_NO);

                        mlog.cust_no     = result2.CUST_NO;
                        mlog.device_id   = data.device_id;
                        mlog.tel         = result2.TEL;
                        mlog.serial_sim  = data.serial_sim;
                        mlog.ip_addr     = IPAddress;
                        mlog.action      = "REGISTER CURRENT DEVICE";
                        mlog.status      = "SUCCESS";
                        mlog.note        = "ลงทะเบียนสำเร็จ";
                        mlog.brand       = data.brand;
                        mlog.model       = data.model;
                        mlog.app_version = data.app_version;
                        mlog.api_version = data.api_version;
                        //mlog.brand = data.brand;
                        //mlog.model = data.model;
                        //mlog.api_version = data.api_version;
                        //log.logSignup(mlog);
                        log.logSignin(mlog);
                        monitor.sendMessage(url, IPAddress, data, new { code = 200, message = "ลงทะเบียนสำเร็จ", data = result2 });
                        return(Ok(new { code = 200, message = "ข้อมูลถูกต้อง", data = new m_identify {
                                            CUST_NO = result2.CUST_NO, CUST_NAME = result2.CUST_NAME, CITIZEN_NO = result2.CITIZEN_NO, TEL = result2.TEL, PERMIT = result2.PERMIT, CHAT = chat, APP_VERSION = version, BROADCAST = broadcast
                                        } }));
                        //return Ok(new { code = 200, message = "ลงทะเบียนสำเร็จ", data = result2 });
                    }
                    else
                    {
                        var devices = _user.getDeviceByCustNo(result2.CUST_NO);
                        if (devices != null)
                        {
                            _user.registerNewDevice(data, result2.CUST_NO);
                            mlog.cust_no     = result2.CUST_NO;
                            mlog.device_id   = data.device_id;
                            mlog.tel         = result2.TEL;
                            mlog.serial_sim  = data.serial_sim;
                            mlog.ip_addr     = IPAddress;
                            mlog.action      = "REGISTER NEW DEVICE";
                            mlog.status      = "SUCCESS";
                            mlog.note        = "ลงทะเบียนสำเร็จ";
                            mlog.brand       = data.brand;
                            mlog.model       = data.model;
                            mlog.app_version = data.app_version;
                            mlog.api_version = data.api_version;
                            //log.logSignup(mlog);
                            log.logSignin(mlog);
                            payment.sendMessageToLine($"[{result2.CUST_NO.ToString()}] คุณ{result2.CUST_NAME} => ลงทะเบียนสำเร็จ");
                            monitor.sendMessage(url, IPAddress, data, new { code = 200, message = "ลงทะเบียนสำเร็จ", data = result2 });
                            return(Ok(new { code = 200, message = "ข้อมูลถูกต้อง", data = new m_identify {
                                                CUST_NO = result2.CUST_NO, CUST_NAME = result2.CUST_NAME, CITIZEN_NO = result2.CITIZEN_NO, TEL = result2.TEL, PERMIT = result2.PERMIT, CHAT = chat, APP_VERSION = version, BROADCAST = broadcast
                                            } }));
                            //return Ok(new { code = 200, message = "ลงทะเบียนสำเร็จ", data = result2 });
                        }
                        else
                        {
                            _user.registerDevice(data, result2.CUST_NO);
                            //Notification otp = new Notification();
                            //otp.sendOTP(result.CUST_NO);
                            mlog.cust_no     = result2.CUST_NO;
                            mlog.device_id   = data.device_id;
                            mlog.tel         = result2.TEL;
                            mlog.serial_sim  = data.serial_sim;
                            mlog.ip_addr     = IPAddress;
                            mlog.action      = "REGISTER NEW DEVICE";
                            mlog.status      = "SUCCESS";
                            mlog.note        = "ลงทะเบียนสำเร็จ";
                            mlog.brand       = data.brand;
                            mlog.model       = data.model;
                            mlog.app_version = data.app_version;
                            mlog.api_version = data.api_version;
                            //log.logSignup(mlog);
                            log.logSignin(mlog);
                            payment.sendMessageToLine($"[{result2.CUST_NO.ToString()}] คุณ{result2.CUST_NAME} => ลงทะเบียนสำเร็จ");
                            monitor.sendMessage(url, IPAddress, data, new { code = 200, message = "ลงทะเบียนสำเร็จ", data = result2 });
                            return(Ok(new { code = 200, message = "ลงทะเบียนสำเร็จ", data = result2 }));
                        }
                    }
                }
                //else
                //{
                //    mlog.cust_no = 0;
                //    mlog.device_id = data.device_id;
                //    mlog.tel = data.phone_no;
                //    mlog.serial_sim = data.serial_sim;
                //    mlog.ip_addr = IPAddress;
                //    mlog.action = "REGISTER";
                //    mlog.status = "FAIL";
                //    mlog.note = "ไม่พบข้อมูลลูกค้า";
                //    log.logSignin(mlog);
                //    monitor.sendMessage(url, IPAddress, data, new { code = 400, message = "ไม่พบข้อมูลค้า!", data = result });
                //    return Ok(new { code = 400, message = "ไม่พบข้อมูลค้า!", data = result });
                //}
            }
            catch (Exception e)
            {
                mlog.cust_no     = 0;
                mlog.device_id   = data.device_id;
                mlog.tel         = data.phone_no;
                mlog.serial_sim  = data.serial_sim;
                mlog.ip_addr     = IPAddress;
                mlog.action      = "REGISTER";
                mlog.status      = "FAIL";
                mlog.note        = e.Message;
                mlog.brand       = data.brand;
                mlog.model       = data.model;
                mlog.app_version = data.app_version;
                mlog.api_version = data.api_version;
                //log.logSignup(mlog);
                log.logSignin(mlog);
                monitor.sendMessage(url, IPAddress, data, new { code = 500, message = e.Message, data = data });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Beispiel #8
0
        public IHttpActionResult GetSmsOffset(int id, int skip, int take)
        {
            m_LogReq mlog;
            string   IPAddress = HttpContext.Current.Request.UserHostAddress;
            string   url       = HttpContext.Current.Request.Path;

            try
            {
                var result      = _user.getProfileById(id);
                var app_version = _user.getAppVersionByCust_no(id);
                //app_version = 3.2;
                if (result != null && result.CUST_NO != 0)
                {
                    mlog         = new m_LogReq();
                    mlog.cust_no = id;
                    //mlog.device_id = ;
                    mlog.tel = result.TEL;
                    // mlog.serial_sim = serial_sim;
                    mlog.ip_addr = IPAddress;
                    mlog.action  = "RETRIEVE SMS";
                    mlog.status  = "SUCCESS";
                    mlog.note    = "ดึงข้อมูล SMS สำเร็จ";
                    var sms = _user.getNotification(id);
                    _user.updateReadSms(id);
                    if (sms.Count > 0)
                    {
                        if (app_version < 3.2)
                        {
                            sms.RemoveAll(s => s.MSG_TYPE == "IMAGE");
                        }

                        if (skip != 0)
                        {
                            skip = skip - 5;
                        }
                        sms = sms.OrderByDescending(p => p.SMS010_PK).Skip(skip).Take(5).ToList();
                        if (skip == 0)
                        {
                            sms = sms.OrderBy(p => p.SMS010_PK).ToList();
                        }
                    }
                    log.logSignin(mlog);
                    monitor.sendMessage(url, IPAddress, new { id = id, skip = skip, take = take }, new { data = sms });
                    return(Ok(new { code = 200, message = "ดึงข้อมูล Sms สำเร็จ", data = sms }));
                }
                else
                {
                    //mlog = new m_LogReq();
                    //mlog.cust_no = id;
                    //mlog.tel = result.TEL;
                    //mlog.ip_addr = IPAddress;
                    //mlog.action = "RETRIEVE SMS";
                    //mlog.status = "FAIL";
                    //mlog.note = "ไม่พบข้อมูลลูกค้าในระบบ";
                    monitor.sendMessage(url, IPAddress, new { id = id, skip = skip, take = take }, new { Message = "Not found customer!" });
                    return(Ok(new { code = 400, message = "ไม่พบข้อมูลลูกค้าในระบบ", data = result }));
                }
            }
            catch (Exception e)
            {
                mlog         = new m_LogReq();
                mlog.ip_addr = IPAddress;
                mlog.note    = e.Message;
                mlog.url     = "api/customer/sms";
                log.logRequest(mlog);
                monitor.sendMessage(url, IPAddress, new { id = id }, new { Type = "Error", Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
Beispiel #9
0
        public IHttpActionResult GetCheckPhone2(string serial_sim, string deviceId, string brand, string model, double app_version, string api_version)
        {
            //var setting = (AppSettingsSection)WebConfigurationManager.OpenWebConfiguration("~").GetSection("appSettings");
            //var appService = setting.Settings["AppService"].Value;
            //if (appService == "False")
            //    return Unauthorized();
            m_LogReq mlog      = new m_LogReq();
            string   IPAddress = HttpContext.Current.Request.UserHostAddress;
            string   url       = HttpContext.Current.Request.Path;

            try
            {
                m_Customer result = new m_Customer();
                if (serial_sim == "1111111111" || serial_sim == "2222222222")
                {
                    result = _user.getProfileByDeviceId(deviceId);
                }
                //else
                //result = _user.getProfileBySerialSim(serial_sim);

                if (result != null && result.CUST_NO != 0)
                {
                    if (result.PERMIT == "SMS" || result.PERMIT == "BOTH")
                    {
                        var device = _user.checkCurrentDevice(deviceId);
                        if (device != null)
                        {
                            if (app_version != device.app_version)
                            {
                                _user.updateAppVersion(app_version, deviceId);
                            }

                            _user.updateIdentify(deviceId);
                            var chat = _user.getChatOn();
                            if (device.device_status == "ACT")
                            {
                                var version   = _user.getAppVersion(serial_sim);
                                var broadcast = _user.getBroadcast();

                                mlog.cust_no     = result.CUST_NO;
                                mlog.device_id   = deviceId;
                                mlog.tel         = result.TEL;
                                mlog.serial_sim  = serial_sim;
                                mlog.ip_addr     = IPAddress;
                                mlog.action      = "IDENTIFY";
                                mlog.status      = "SUCCESS";
                                mlog.note        = "ระบุตัวตนสำเร็จ";
                                mlog.brand       = brand;
                                mlog.model       = model;
                                mlog.app_version = app_version;
                                mlog.api_version = api_version;
                                log.logSignin(mlog);
                                monitor.sendMessage(url, IPAddress, new { serial_sim = serial_sim, deviceId = deviceId /*, app_version = app_version*/ }, new { code = 200, message = "ระบุตัวตนสำเร็จ", data = result });
                                return(Ok(new { code = 200, message = "ข้อมูลถูกต้อง", data = new m_identify {
                                                    CUST_NO = result.CUST_NO, CUST_NAME = result.CUST_NAME, CITIZEN_NO = result.CITIZEN_NO, TEL = result.TEL, PERMIT = result.PERMIT, CHAT = chat, APP_VERSION = version, BROADCAST = broadcast
                                                } }));
                            }
                            else if (device.device_status == "CHANGE_TEL")
                            {
                                mlog.cust_no     = result.CUST_NO;
                                mlog.device_id   = deviceId;
                                mlog.tel         = result.TEL;
                                mlog.serial_sim  = serial_sim;
                                mlog.ip_addr     = IPAddress;
                                mlog.action      = "IDENTIFY";
                                mlog.status      = "FAIL";
                                mlog.note        = "ลูกค้าเปลี่ยนหมายเลขโทรศัพท์";
                                mlog.brand       = brand;
                                mlog.model       = model;
                                mlog.app_version = app_version;
                                mlog.api_version = api_version;
                                log.logSignin(mlog);
                                monitor.sendMessage(url, IPAddress, new { serial_sim = serial_sim, deviceId = deviceId /*, app_version = app_version*/ }, new { code = 402, message = "ข้อมูลลูกค้าอยู่ในขั้นตอนการเปลี่ยนหมายเลขโทรศัพท์", data = result });
                                return(Ok(new { code = 402, message = "กรุณาใช้หมายเลขโทรศัพท์ใหม่", data = result }));
                            }
                            else
                            {
                                mlog.cust_no     = result.CUST_NO;
                                mlog.device_id   = deviceId;
                                mlog.tel         = result.TEL;
                                mlog.serial_sim  = serial_sim;
                                mlog.ip_addr     = IPAddress;
                                mlog.action      = "IDENTIFY";
                                mlog.status      = "FAIL";
                                mlog.note        = "เครื่องลูกค้าถูกระงับการใช้งาน";
                                mlog.brand       = brand;
                                mlog.model       = model;
                                mlog.app_version = app_version;
                                mlog.api_version = api_version;
                                //log.logSignin(mlog);
                                monitor.sendMessage(url, IPAddress, new { serial_sim = serial_sim, deviceId = deviceId /*, app_version= app_version */ }, new { code = 403, message = "เครื่องลูกค้าถูกระงับการใช้งาน!", data = result });
                                return(Ok(new { code = 403, message = "เครื่องลูกค้าถูกระงับการใช้งาน!", data = result }));
                            }
                        }
                        else
                        {
                            mlog.cust_no     = result.CUST_NO;
                            mlog.device_id   = deviceId;
                            mlog.tel         = result.TEL;
                            mlog.serial_sim  = serial_sim;
                            mlog.ip_addr     = IPAddress;
                            mlog.action      = "IDENTIFY";
                            mlog.status      = "FAIL";
                            mlog.note        = "ไม่พบเครื่องลูกค้าในระบบ";
                            mlog.brand       = brand;
                            mlog.model       = model;
                            mlog.app_version = app_version;
                            mlog.api_version = api_version;
                            log.logSignin(mlog);
                            monitor.sendMessage(url, IPAddress, new { serial_sim = serial_sim, deviceId = deviceId /*, app_version = app_version*/ }, new { code = 404, message = "ไม่พบเครื่องลูกค้าในระบบ!", data = result });
                            return(Ok(new { code = 404, message = "ไม่พบเครื่องลูกค้าในระบบ!", data = result }));
                        }
                    }
                    else
                    {
                        mlog.cust_no     = result.CUST_NO;
                        mlog.device_id   = deviceId;
                        mlog.tel         = result.TEL;
                        mlog.serial_sim  = serial_sim;
                        mlog.ip_addr     = IPAddress;
                        mlog.action      = "IDENTIFY";
                        mlog.status      = "FAIL";
                        mlog.note        = "ลูกค้าถูกระงับบริการ SMS";
                        mlog.brand       = brand;
                        mlog.model       = model;
                        mlog.app_version = app_version;
                        mlog.api_version = api_version;
                        log.logSignin(mlog);
                        monitor.sendMessage(url, IPAddress, new { serial_sim = serial_sim, deviceId = deviceId /*, app_version = app_version*/ }, new { code = 401, message = "ลูกค้าถูกระงับบริการ SMS!", data = result });
                        return(Ok(new { code = 401, message = "ลูกค้าถูกระงับบริการ SMS!", data = result }));
                    }
                }
                else
                {
                    mlog.cust_no    = 0;
                    mlog.device_id  = deviceId;
                    mlog.tel        = string.Empty;
                    mlog.serial_sim = serial_sim;
                    mlog.ip_addr    = IPAddress;
                    mlog.action     = "IDENTIFY";
                    mlog.status     = "FAIL";
                    mlog.note       = "ไม่พบเครื่องของลูกค้าในระบบ";

                    //log.logSignin(mlog);
                    monitor.sendMessage(url, IPAddress, new { serial_sim = serial_sim, deviceId = deviceId /*, app_version = app_version*/ }, new { code = 407, message = "ไม่พบเลขซิมการ์ดของลูกค้าในระบบ!", data = result });
                    return(Ok(new { code = 409, message = "ไม่พบเครื่องของลูกค้าในระบบ!", data = result }));
                }
            }
            catch (Exception e)
            {
                mlog.cust_no     = 0;
                mlog.device_id   = deviceId;
                mlog.tel         = string.Empty;
                mlog.serial_sim  = serial_sim;
                mlog.ip_addr     = IPAddress;
                mlog.action      = "IDENTIFY";
                mlog.status      = "FAIL";
                mlog.note        = e.Message;
                mlog.brand       = brand;
                mlog.model       = model;
                mlog.app_version = app_version;
                mlog.api_version = api_version;
                log.logSignin(mlog);
                monitor.sendMessage(url, IPAddress, new { serial_sim = serial_sim, deviceId = deviceId /*, app_version = app_version */ }, new { Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }
        public IHttpActionResult PostNewPayment2([FromBody] PaymentReq value)
        {
            var setting        = (AppSettingsSection)WebConfigurationManager.OpenWebConfiguration("~").GetSection("appSettings");
            var appService     = setting.Settings["AppService"].Value;
            var paymentService = setting.Settings["PaymentService"].Value;

            if (appService == "False" || paymentService == "False")
            {
                return(Unauthorized());
            }
            value.IPAddress = HttpContext.Current.Request.UserHostAddress;
            string clientHostname = HttpContext.Current.Request.UserHostName;
            string url            = HttpContext.Current.Request.Path;

            try
            {
                //value.OrderNo = "test001";
                value.Description = "testAPI";
                string strAmt = value.Amount.ToString();
                strAmt       = strAmt.Insert(strAmt.Length - 2, ".");
                value.PayAmt = double.Parse(strAmt);
                mlog         = new m_LogReq();
                if (!ModelState.IsValid)
                {
                    return(BadRequest("Invalid parameter!"));
                }

                user = new User();
                var cust = user.getProfileById(value.CustomerId);
                if (cust != null)
                {
                    var contract = user.findContract(value.CustomerId, value.ContractNo);
                    if (contract != null)
                    {
                        if (value.PayAmt <= (contract.BAL_AMT - contract.DISC_AMT))
                        {
                            Payment    payment = new Payment();
                            PaymentRes res     = payment.createPayment(value);
                            if (res == null)
                            {
                                //mlogOrder = new m_LogOrder();
                                //mlogOrder.cust_no = value.CustomerId;
                                //mlogOrder.con_no = value.ContractNo;
                                //mlogOrder.channel_id = value.ChannelCode;
                                //mlogOrder.pay_amt = value.PayAmt;
                                //mlogOrder.trans_amt = value.Amount;
                                //mlogOrder.device_id = value.DeviceId;
                                //mlogOrder.tel = value.PhoneNumber;
                                //mlogOrder.note = "ระบบขัดข้อง ไม่สามารถทำรายการได้";
                                //mlogOrder.ip_addr = value.IPAddress;
                                //log.logOrder(mlogOrder);



                                monitor.sendMessage(url, clientHostname, value, new { request_status = "FAILURE", desc = "Internal server error / Invalid parameter!", data = res });
                                return(Ok(new { code = 500, message = "ระบบขัดข้อง ไม่สามารถทำรายการได้", data = res }));
                            }
                            else
                            {
                                monitor.sendMessage(url, clientHostname, value, new { request_status = "SUCCESS", desc = "Requested to Payment Gateway", data = res });
                                return(Ok(new { code = 200, message = "สร้างรายการชำระเงินสำเร็จ", data = res }));
                            }
                        }
                        else
                        {
                            mlogOrder            = new m_LogOrder();
                            mlogOrder.cust_no    = value.CustomerId;
                            mlogOrder.con_no     = value.ContractNo;
                            mlogOrder.channel_id = value.ChannelCode;
                            mlogOrder.pay_amt    = value.PayAmt;
                            mlogOrder.trans_amt  = value.Amount;
                            mlogOrder.device_id  = value.DeviceId;
                            mlogOrder.tel        = value.PhoneNumber;
                            mlogOrder.note       = "จำนวนเงินที่ต้องการชำระมากกว่ายอดคงเหลือหลังจากที่หักส่วนลดแล้ว";
                            mlogOrder.ip_addr    = value.IPAddress;
                            log.logOrder(mlogOrder);
                            //mlog.cust_no = value.CustomerId;
                            //mlog.device_id = value.DeviceId;
                            //mlog.ip_addr = value.IPAddress;
                            //mlog.note = "จำนวนเงินที่ต้องการชำระมากกว่ายอดคงเหลือหลังจากที่หักส่วนลดแล้ว";
                            //mlog.url = "api/authen/newpayment2";
                            //log.logRequest(mlog);
                            monitor.sendMessage(url, clientHostname, value, new { request_status = "FAILURE", desc = "จำนวนเงินที่ต้องการชำระมากกว่ายอดคงเหลือหลังจากที่หักส่วนลดแล้ว", data = string.Empty });
                            return(Ok(new { code = 400, message = "จำนวนเงินที่ต้องการชำระมากกว่ายอดคงเหลือหลังจากที่หักส่วนลดแล้ว", data = contract }));
                        }
                    }
                    else
                    {
                        mlogOrder            = new m_LogOrder();
                        mlogOrder.cust_no    = value.CustomerId;
                        mlogOrder.con_no     = value.ContractNo;
                        mlogOrder.channel_id = value.ChannelCode;
                        mlogOrder.pay_amt    = value.PayAmt;
                        mlogOrder.trans_amt  = value.Amount;
                        mlogOrder.device_id  = value.DeviceId;
                        mlogOrder.tel        = value.PhoneNumber;
                        mlogOrder.note       = "ไม่พบสัญญาของลูกค้า";
                        mlogOrder.ip_addr    = value.IPAddress;
                        log.logOrder(mlogOrder);
                        //mlog.cust_no = value.CustomerId;
                        //mlog.device_id = value.DeviceId;
                        //mlog.ip_addr = value.IPAddress;
                        //mlog.note = "ไม่พบสัญญาของลูกค้า";
                        //mlog.url = "api/authen/newpayment2";
                        //log.logRequest(mlog);
                        monitor.sendMessage(url, clientHostname, value, new { request_status = "FAILURE", desc = "Not found contract!", data = contract });
                        return(Ok(new { code = 400, message = "ไม่พบข้อมูลสัญญาในระบบ", data = contract }));
                    }
                }
                else
                {
                    mlogOrder            = new m_LogOrder();
                    mlogOrder.cust_no    = value.CustomerId;
                    mlogOrder.con_no     = value.ContractNo;
                    mlogOrder.channel_id = value.ChannelCode;
                    mlogOrder.pay_amt    = value.PayAmt;
                    mlogOrder.trans_amt  = value.Amount;
                    mlogOrder.device_id  = value.DeviceId;
                    mlogOrder.tel        = value.PhoneNumber;
                    mlogOrder.note       = "ไม่พบข้อมูลลูกค้าในระบบ";
                    mlogOrder.ip_addr    = value.IPAddress;
                    log.logOrder(mlogOrder);
                    //mlog.cust_no = value.CustomerId;
                    //mlog.device_id = value.DeviceId;
                    //mlog.ip_addr = value.IPAddress;
                    //mlog.note = "ไม่พบข้อมูลลูกค้า";
                    //mlog.url = "api/authen/newpayment2";
                    //log.logRequest(mlog);
                    monitor.sendMessage(url, clientHostname, value, new { request_status = "FAILURE", desc = "Not found customer!", data = cust });
                    return(Ok(new { code = 400, message = "ไม่พบข้อมูลลูกค้าในระบบ", data = cust }));
                }
            }
            catch (Exception e)
            {
                mlog           = new m_LogReq();
                mlog.cust_no   = value.CustomerId;
                mlog.device_id = value.DeviceId;
                mlog.ip_addr   = value.IPAddress;
                mlog.note      = e.Message;
                mlog.url       = "api/authen/newpayment2";
                log.logRequest(mlog);
                monitor.sendMessage(url, clientHostname, value, new { request_status = "FAILURE", Message = e.Message });
                return(Ok(new { code = 500, message = e.Message, data = string.Empty }));
            }
        }