public string SendSMS(object obj, bool IsBackup, EncryptAndDecrypt ead, SubTelcoProvider stProvider, RouteTelcoProvider routeProvider) { try { QueueService model = (QueueService)obj; string content = model.Content; if (model.ProcessingCode.Equals(ConfigType.QueueService_ProcessingCode_OTP)) { content = ead.Decrypt(content); } var modeltelco = stProvider.getSubTelcoByDest(model.Receiver); if (modeltelco == null) { return(503 + ":NONE_TELCO"); } else { // CHECK TELCO Telco telco = modeltelco.Telco; // GET ROUTE int route = routeProvider.getRoute(telco.Id, IsBackup); int result = 0; string code_Route = ""; if (route == ConfigType.ROUTE_VNET) { result = ConnectVNet.SendSMS(validatePhone(model.Receiver), content); if (result == 0) { code_Route = "VNET"; //string log = string.Format("SendSMS: {0} -> {1} | {2}", model.Receiver, model.Content, code_Route); //logger.Info(log + " - " + model.ProcessingCode); return(result + ":" + code_Route); } else if (!IsBackup) { return(SendSMS(obj, true, ead, stProvider, routeProvider)); } else { return(501 + ":" + code_Route); } } else if (route == ConfigType.ROUTE_VNTP) { result = ConnectVNTP.SendSMS(validatePhone(model.Receiver), content); if (result == 0) { code_Route = "VNTP"; return(result + ":" + code_Route); } else if (!IsBackup) { return(SendSMS(obj, true, ead, stProvider, routeProvider)); } else { return(501 + ":" + code_Route); } } else if (route == ConfigType.ROUTE_SOUTHtelecom) { string str_result = ConnectSOUTHtelecom.SendSMSBrandName(validatePhone(model.Receiver), content, "VietinBank"); if (result == 0) { code_Route = "SOUTHtelecom"; return(result + ":" + code_Route); } else if (!IsBackup) { return(SendSMS(obj, true, ead, stProvider, routeProvider)); } else { return(501 + ":" + code_Route); } } else { code_Route = "NONE_ROUTE"; //string log = string.Format("SendSMS: {0} -> {1} | {2}", model.Receiver, model.Content, code_Route); //logger.Info(log + " - " + model.ProcessingCode); return(502 + ":" + code_Route); } } } catch (Exception ex) { logger.Error(ex); return(555 + ":SendSMS_EX_ERROR"); } }
public void SendSMSFormList(object obj) { try { List <QueueService> listSend = (List <QueueService>)obj; MTQueueReportProvider providerMTR = new MTQueueReportProvider(); MTProvider providerMT = new MTProvider(); QueueServiceProvider qsProvider = new QueueServiceProvider(); EncryptAndDecrypt ead = new EncryptAndDecrypt(); SubTelcoProvider stProvider = new SubTelcoProvider(); RouteTelcoProvider routeProvider = new RouteTelcoProvider(); while (listSend != null && listSend.Count > 0) { //string str_result = "0:NONE_ROUTE"; QueueService model = listSend[0]; //if(model.Receiver.Contains("904993309") || model.Receiver.Contains("988018028")) //{ // str_result = SendSMS(model, false, ead, stProvider, routeProvider); //} string str_result = SendSMS(model, false, ead, stProvider, routeProvider); var results = str_result.Split(new char[] { ':' }, StringSplitOptions.RemoveEmptyEntries).ToList(); int result = Convert.ToInt32(results[0]); if (result == 501 || result == 502 || result == 503 || result == 555) { //FAIL MT mt = new MT() { Content = model.Content, DateCreate = model.DateCreate, Dest = model.Dest, Password = model.Password, Priority = model.Priority, ProcessingCode = model.ProcessingCode, Receiver = model.Receiver, Source = model.Source, Status = ConfigType.MT_STATUS_NOT_NOTIFY_ERROR, TimeSend = DateTime.Now, TransID = model.TransID, TransTime = model.TransTime, User = model.User, Result = result, SMSID = model.SMSID, RouteName = results[1] }; providerMT.Insert(mt); } else { //SUCCESS MTQueueReport mt = new MTQueueReport() { Content = model.Content, DateCreate = model.DateCreate, Dest = model.Dest, Password = model.Password, Priority = model.Priority, ProcessingCode = model.ProcessingCode, Receiver = model.Receiver, Source = model.Source, Status = ConfigType.MT_STATUS_NOT_NOTIFY, TimeSend = DateTime.Now, TransID = model.TransID, TransTime = model.TransTime, User = model.User, Result = result, SMSID = model.SMSID, RouteName = results[1] }; providerMTR.Insert(mt); } logger.Info("SendSMS [" + results[1] + "] : " + model.Receiver + " | " + model.Content + " | " + result); listSend.RemoveAt(0); qsProvider.DeleteById(model.Id); Thread.Sleep(10); } _doneEvent.Set(); } catch (Exception ex) { logger.Error(ex); _doneEvent.Set(); Thread.Sleep(1000); //SendSMSFormList(listSend); } }