/// <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); }
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); } }
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); } }
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); } }
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)); } }