Beispiel #1
0
 /// <summary>
 /// Format datetime theo template
 /// </summary>
 /// <param name="input">Dữ liệu đầu vào</param>
 /// <param name="templateIn">Template format dữ liệu đầu vào</param>
 /// <param name="templateOut">Template format dữ liệu return</param>
 /// <returns>Dữ liệu theo template</returns>
 public static string FormatDatetimeToString(string input, string templateIn, string templateOut = "YYYY/MM/DD HH:mm")
 {
     try
     {
         if (!String.IsNullOrEmpty(input))
         {
             if (!String.IsNullOrEmpty(templateIn))
             {
                 DateTime dateTime = DateTime.ParseExact(input, templateIn, CultureInfo.InvariantCulture, DateTimeStyles.None);
                 return(dateTime.ToString(templateOut));
             }
             else
             {
                 DateTime dateTime;
                 DateTime.TryParse(input, out dateTime);
                 return(dateTime.ToString(templateOut));
             }
         }
         else
         {
             return(String.Empty);
         }
     }
     catch (Exception ex)
     {
         logger.Error(AppConst.A("ConvertToDateTime", input, templateIn, templateOut, ex));
         return(String.Empty);
     }
 }
        public static void SendMail(string sender, string content, string sentTime, string partner, int?errorCode, int?errorCodePartner)
        {
            try
            {
                MailMessage mail       = new MailMessage();
                SmtpClient  smtpServer = new SmtpClient("mail.onesms.vn");

                mail.From = new MailAddress(AppConst.mailFrom);
                mail.To.Add(AppConst.mailTo);
                mail.Subject = "Thông báo gửi tin quảng cáo";
                if (partner == AppConst.PARTNER_SOUTH_AMS)
                {
                    if (errorCode == 1)
                    {
                        mail.Body = "Đơn quảng cáo đã được gửi thành công sang đối tác.</br>Thương hiệu: " + sender + "</br>Nội dung: " + content + "</br>Thời gian gửi: " + sentTime;
                    }
                    else
                    {
                        mail.Body = "Đơn quảng cáo gửi thất bại sang đối tác.</br>Thương hiệu: " + sender + "</br>Nội dung: " + content + "</br>Thời gian gửi: " + sentTime;
                    }
                }

                smtpServer.Port        = 587;
                smtpServer.Credentials = new System.Net.NetworkCredential("*****@*****.**", "alertmail");
                smtpServer.EnableSsl   = true;

                smtpServer.Send(mail);
            }
            catch (Exception ex)
            {
                logger.Error(AppConst.A("SendSMS_API_QC - mail error: ", ex));
            }
        }
        public static bool ConnectSMPP(IList <SmppModel> listSMPP)
        {
            try
            {
                if (smppClient == null)
                {
                    Initialize();
                }

                if (smppClient.Status == ConnectionStatus.Closed)
                {
                    foreach (var smpp in listSMPP)
                    {
                        logger.Info(AppConst.A("ConnectSMPP", "Start connect!", smpp.HOST_NAME, smpp.PORT, smpp.SYSTEM_ID, smpp.PASSWORD));

                        if (!String.IsNullOrEmpty(smpp.HOST_NAME) && !String.IsNullOrEmpty(smpp.SYSTEM_ID))
                        {
                            smppClient.AddrTon             = smpp.ADDR_TON;
                            smppClient.AddrNpi             = smpp.ADDR_NPI;
                            smppClient.SystemType          = String.Empty;
                            smppClient.EnabledSslProtocols = SslProtocols.None;

                            if (smppClient.Connect(smpp.HOST_NAME, smpp.PORT))
                            {
                                var bindResp = smppClient.Bind(smpp.SYSTEM_ID, smpp.PASSWORD, ConnectionMode.Transmitter);
                                if (bindResp.Status == CommandStatus.ESME_ROK)
                                {
                                    logger.Info(AppConst.A("ConnectSMPP", "Connected!", bindResp.Status));
                                    return(true);
                                }
                                else
                                {
                                    logger.Error(AppConst.A("ConnectSMPP", "Username or password invalid!", bindResp.Status));
                                }
                            }
                            else
                            {
                                logger.Error(AppConst.A("ConnectSMPP", "Connect fail!"));
                            }
                        }
                    }
                }
                else
                {
                    return(true);
                }
            }
            catch (Exception ex)
            {
                logger.Error(AppConst.A("ConnectSMPP", listSMPP.Count, ex));
            }

            return(false);
        }
Beispiel #4
0
 public static Dictionary <string, dynamic> ConvertJsonToObject(string json)
 {
     try
     {
         if (!String.IsNullOrEmpty(ReplaceJson(json)))
         {
             return(JsonConvert.DeserializeObject <Dictionary <string, dynamic> >(ReplaceJson(json)));
         }
         else
         {
             return(null);
         }
     }
     catch (Exception e)
     {
         logger.Error(AppConst.A("ConvertJsonToObject", json, e.ToString()));
         return(null);
     }
 }
Beispiel #5
0
 private static string GetValueConfig(string key)
 {
     try
     {
         if (ConfigurationManager.AppSettings[key] != null)
         {
             return(ConfigurationManager.AppSettings[key].ToString());
         }
         else
         {
             return(String.Empty);
         }
     }
     catch (Exception ex)
     {
         logger.Error(AppConst.A("GetValueConfig", key, ex));
         return(String.Empty);
     }
 }
        public static int SendSMS(SmsModel sms)
        {
            bool IsConnected = SmppHelper.smppClient.Connected;

            if (!IsConnected)
            {
                IList <SmppModel> listSMPP = new List <SmppModel>();

                if (!String.IsNullOrEmpty(sms.SMPP_IP_1))
                {
                    listSMPP.Add(new SmppModel()
                    {
                        HOST_NAME = sms.SMPP_IP_1,
                        PORT      = String.IsNullOrEmpty(sms.SMPP_PORT_1) ? 0 : Convert.ToInt32(sms.SMPP_PORT_1),
                        ADDR_TON  = Convert.ToByte("1"),
                        ADDR_NPI  = Convert.ToByte("1"),
                        SYSTEM_ID = sms.SMPP_USER,
                        PASSWORD  = sms.SMPP_PASS
                    });
                }

                if (!String.IsNullOrEmpty(sms.SMPP_IP_2))
                {
                    listSMPP.Add(new SmppModel()
                    {
                        HOST_NAME = sms.SMPP_IP_2,
                        PORT      = String.IsNullOrEmpty(sms.SMPP_PORT_2) ? 0 : Convert.ToInt32(sms.SMPP_PORT_2),
                        ADDR_TON  = Convert.ToByte("1"),
                        ADDR_NPI  = Convert.ToByte("1"),
                        SYSTEM_ID = sms.SMPP_USER,
                        PASSWORD  = sms.SMPP_PASS
                    });
                }

                IsConnected = SmppHelper.ConnectSMPP(listSMPP);
            }

            if (IsConnected && SmppHelper.smppClient.Connected)
            {
                IList <SubmitSmResp> response = SmppHelper.smppClient.Submit(
                    SMS.ForSubmit()
                    .From(sms.SENDER_NAME.Trim())
                    .To(sms.PHONE.Trim()).Coding(DataCodings.Default)
                    .Text(sms.SMS_CONTENT.Trim())
                    .DeliveryReceipt());

                if (response.All(x => x.Status == CommandStatus.ESME_ROK))
                {
                    logger.Info(AppConst.A("SendSMS_SMPP", sms.SENDER_NAME, sms.PHONE, sms.SMS_CONTENT, response[0].Status, response[0].MessageId, response[0].Request));
                    return(AppConst.SYS_ERR_OK);
                }
                else
                {
                    logger.Info(AppConst.A("SendSMS_SMPP", response[0].MessageId, response[0].Request));
                    return((int)response[0].Status);
                }
            }
            else
            {
                logger.Info(AppConst.A("SendSMS_SMPP", "Connect SMPP fail!", "Switch send SMS to API"));
                return(AppConst.SYS_ERR_EXCEPTION);
            }
        }
Beispiel #7
0
        public static string getLoaiNhaMang(string phone)
        {
            try
            {
                if (!string.IsNullOrEmpty(phone))
                {
                    //phone = AddPhone84(phone);
                    //if (!String.IsNullOrEmpty(phone))
                    //{
                    //    string telco = RedisCache.Get(String.Format("PHONE_CHANGE_TELCO:{0}", phone));
                    //    if (!String.IsNullOrEmpty(telco))
                    //    {
                    //        return telco;
                    //    }
                    //}

                    string a = String.Empty;
                    string b = String.Empty;

                    if (phone.Length > 5)
                    {
                        if (phone.IndexOf("84") == 0)
                        {
                            a = "0" + phone.Substring(2, 2);
                            b = "0" + phone.Substring(2, 3);
                        }
                        else
                        {
                            a = phone.Substring(0, 3);
                            b = phone.Substring(0, 4);
                        }
                    }
                    if (phone.IndexOf("84") == 0)
                    {
                        if (phone.Length == 11)
                        {
                            phone = "0" + phone.Substring(0, 9);
                        }
                        if (phone.Length == 12)
                        {
                            phone = "0" + phone.Substring(0, 10);
                        }
                    }

                    List <string> lst_viettel = new List <string> {
                        "086", "096", "097", "098", "032", "033", "034", "035", "036", "037", "038", "039"
                    };
                    List <string> lst_mobi = new List <string> {
                        "089", "090", "093", "070", "079", "077", "076", "078"
                    };
                    List <string> lst_vina = new List <string> {
                        "088", "091", "094", "083", "084", "085", "081", "082"
                    };
                    List <string> lst_vnMobile = new List <string> {
                        "092", "052", "056", "058"
                    };
                    List <string> lst_gMobile = new List <string> {
                        "099", "059"
                    };

                    if (phone.Length != 10)
                    {
                        return(String.Empty);
                    }
                    if (lst_viettel.Contains(a) || lst_viettel.Contains(b))
                    {
                        return(AppConst.VIETTEL);
                    }
                    if (lst_mobi.Contains(a) || lst_mobi.Contains(b))
                    {
                        return(AppConst.VMS);
                    }
                    if (lst_vina.Contains(a) || lst_vina.Contains(b))
                    {
                        return(AppConst.GPC);
                    }
                    if (lst_vnMobile.Contains(a) || lst_vnMobile.Contains(b))
                    {
                        return(AppConst.VNM);
                    }
                    if (lst_gMobile.Contains(a) || lst_gMobile.Contains(b))
                    {
                        return(AppConst.GTEL);
                    }

                    return(String.Empty);
                }
                else
                {
                    logger.Info(AppConst.A("OnStop", "Số điện thoại rỗng"));
                    return(String.Empty);
                }
            }
            catch (Exception ex)
            {
                logger.Info(AppConst.A("OnStop", ex));
                return(String.Empty);
            }
        }
Beispiel #8
0
        public static void SendSMS_API_QC(RabbitHelper rabbitHelper, IList <SmsModel> listSms)
        {
            int    ErrCode        = AppConst.SYS_ERR_UNKNOW;
            int    ErrCodePartner = AppConst.SYS_ERR_UNKNOW;
            string ReceiveResult  = String.Empty;

            try
            {
                string   result    = String.Empty;
                string[] listPhone = new string[listSms.Count];
                string   url       = listSms[0].URL_HTTP_1_QC;
                string   username  = listSms[0].HTTP_USER_QC;
                string   password  = listSms[0].HTTP_PASS_QC;
                string   partner   = listSms[0].PARTNER_NAME;
                string   sender    = listSms[0].SENDER_NAME;
                string   content   = listSms[0].SMS_CONTENT;
                string   sentTime  = listSms[0].SCHEDULE_TIME;

                foreach (var item in listSms.Select((value, index) => new { Value = value, Index = index }))
                {
                    listPhone[item.Index] = item.Value.PHONE;
                }

                switch (partner)
                {
                case AppConst.PARTNER_SOUTH_AMS:
                    IDictionary <string, object> resultData = (new SouthService()).SendSMS_QCAsync(url, password, sender, content, listPhone, CommonUtil.FormatDatetimeToString(sentTime, "yyyyMMddHHmmss", "yyyy/MM/dd HH:mm")).Result;
                    logger.Info(AppConst.A("SendSMS_API_QC SOUTH_AMS", JsonConvert.SerializeObject(resultData, Formatting.Indented)));
                    ErrCodePartner = Convert.ToInt32(resultData[AppConst.ERR_CODE_PARTNER]);
                    ErrCode        = Convert.ToInt32(resultData[AppConst.ERR_CODE]);
                    ReceiveResult  = resultData[AppConst.RECEIVE_RESULT].ToString();
                    break;

                case AppConst.PARTNER_VMG_AMS:
                    sentTime = CommonUtil.FormatDatetimeToString(sentTime, "yyyyMMddHHmmss", "dd/MM/yyyy HH:mm");
                    ApiAdsReturn apiAdsReturn = (new VmgService(url)).AdsSendSms(listPhone, sender, content, sentTime, username, password);
                    logger.Info(AppConst.A("SendSMS_API_QC VMG_AMS", sender, content, sentTime, username, password, JsonConvert.SerializeObject(apiAdsReturn, Formatting.Indented)));
                    if (apiAdsReturn != null)
                    {
                        ErrCodePartner = apiAdsReturn.error_code;
                        ErrCode        = ErrCodePartner;
                        ReceiveResult  = CommonUtil.FormatDatetimeToString(sentTime, "dd/MM/yyyy HH:mm", "dd-MM-yyyy");
                    }
                    else
                    {
                        ErrCode       = AppConst.SYS_ERR_UNKNOW;
                        ReceiveResult = "Error call WebService";
                    }
                    break;

                case AppConst.PARTNER_VIETGUYS_AMS:
                    string resultDataVietguys = (new VietguysService(url)).SendSMS_QCAsync(username, password, sender, content, String.Join(",", listPhone), CommonUtil.FormatDatetimeToString(sentTime, "yyyyMMddHHmmss", "yyyy-mm-dd"), CommonUtil.FormatDatetimeToString(sentTime, "yyyyMMddHHmmss", "HH:mm")).Result;
                    if (!(new string[] { "1", "2", "3" }).Contains(resultDataVietguys))
                    {
                        ErrCode       = AppConst.SYS_ERR_OK;
                        ReceiveResult = resultDataVietguys;
                    }
                    else
                    {
                        ErrCodePartner = ErrCode = Convert.ToInt32(resultDataVietguys);
                    }
                    break;

                default:
                    break;
                }

                logger.Info(AppConst.A("SendSMS_API_QC", ErrCode, ErrCodePartner, ReceiveResult));

                SmsModel sms = new SmsModel()
                {
                    SMS_TYPE         = AppConst.QC,
                    URL_HTTP_1_CSKH  = url,
                    HTTP_USER_CSKH   = username,
                    HTTP_PASS_CSKH   = password,
                    PARTNER_NAME     = partner,
                    SENDER_NAME      = sender,
                    SMS_CONTENT      = content,
                    SCHEDULE_TIME    = listSms[0].SCHEDULE_TIME,
                    CAMPAIGN_ID      = listSms[0].CAMPAIGN_ID,
                    ERR_CODE_PARTNER = ErrCodePartner,
                    RECEIVE_RESULT   = ReceiveResult
                };

                if (ErrCode == AppConst.SYS_ERR_OK)
                {
                    sms.ERR_CODE       = ErrCode;
                    sms.RECEIVE_RESULT = ReceiveResult;
                    rabbitHelper.PublishMessage(AppConfig.QUEUE_SUCCESS, JsonConvert.SerializeObject(sms));
                }
                else
                {
                    sms.ERR_CODE       = ErrCode;
                    sms.RECEIVE_RESULT = ReceiveResult;
                    rabbitHelper.PublishMessage(AppConfig.QUEUE_ERROR, JsonConvert.SerializeObject(sms));
                }
            }
            catch (Exception ex)
            {
                logger.Error(AppConst.A("SendSMS_API_QC", ErrCode, ErrCodePartner, ReceiveResult, ex));
            }
        }