public SmsDeliveryReportResultVM GetReportSmsStatus(string IdSMS) { SmsDeliveryReportResultVM esito = new SmsDeliveryReportResultVM(); var smsSettings = _orchardServices.WorkContext.CurrentSite.As <SmsSettingsPart>(); SmsServiceReference.SmsWebServiceSoapClient _service = CreateSmsService(smsSettings); SmsServiceReference.Login login = new SmsServiceReference.Login(); login.User = smsSettings.WsUsername; login.Password = smsSettings.WsPassword; login.DriverId = smsSettings.MamDriverIdentifier; // Dettaglio Transfer Delivery Report SmsServiceReference.StatusByExtId[] ret = _service.GetSmsStateByExternalId(login, IdSMS); if (ret != null && ret.Length > 0) { int contACCEPTED = (from sms in ret where sms.SmsState.CompareTo("ACCEPTED") == 0 select sms).Count(); int contDELIVERED = (from sms in ret where sms.SmsState.CompareTo("DELIVERED") == 0 select sms).Count(); int contEXPIRED = (from sms in ret where sms.SmsState.CompareTo("EXPIRED") == 0 select sms).Count(); int contREJECTED = (from sms in ret where sms.SmsState.CompareTo("REJECTED") == 0 select sms).Count(); int contSmsTotali = contACCEPTED + contDELIVERED + contEXPIRED + contREJECTED; int contSmsInviati = contACCEPTED + contDELIVERED; int contSmsFalliti = contEXPIRED + contREJECTED; string reportStatus = "Tot Utenti: " + contSmsTotali.ToString(); reportStatus += " - Inviati: " + contSmsInviati.ToString(); reportStatus += " (Consegnati al terminale: " + contDELIVERED.ToString() + " - Consegnati all'operatore: " + contACCEPTED.ToString() + ")"; reportStatus += " - Falliti: " + contSmsFalliti.ToString(); reportStatus += " (Rejected: " + contREJECTED.ToString() + " - Expired: " + contEXPIRED.ToString() + ")"; List <SmsDeliveryReportDetails> listDetails = new List <SmsDeliveryReportDetails>(); foreach (SmsServiceReference.StatusByExtId report in ret) { SmsDeliveryReportDetails detail = new SmsDeliveryReportDetails(); detail.Recipient = report.SmsNumber.ToString(); detail.SubmittedDate = Convert.ToDateTime(report.SmsLastUpdate, new CultureInfo("it-IT")); detail.RequestDate = Convert.ToDateTime(report.SmsSentDate, new CultureInfo("it-IT")); detail.Status = report.SmsState; listDetails.Add(detail); } esito.ReportStatus = reportStatus; esito.Details = listDetails; } else { esito = null; } return(esito); }
public Config GetConfig() { //Specify the binding to be used for the client. var smsSettings = _orchardServices.WorkContext.CurrentSite.As <SmsSettingsPart>(); SmsServiceReference.SmsWebServiceSoapClient _service = CreateSmsService(smsSettings); SmsServiceReference.Login login = new SmsServiceReference.Login(); login.User = smsSettings.WsUsername; login.Password = smsSettings.WsPassword; login.DriverId = smsSettings.MamDriverIdentifier; var result = _service.GetConfig(login); return(result); }
public int GetStatus() { //Specify the binding to be used for the client. var smsSettings = _orchardServices.WorkContext.CurrentSite.As <SmsSettingsPart>(); EndpointAddress address = new EndpointAddress(smsSettings.SmsServiceEndPoint); BasicHttpBinding binding = new BasicHttpBinding(); if (smsSettings.SmsServiceEndPoint.ToLower().StartsWith("https://")) { binding.Security.Mode = BasicHttpSecurityMode.Transport; } SmsServiceReference.SmsWebServiceSoapClient _service = new SmsWebServiceSoapClient(binding, address); SmsServiceReference.Login login = new SmsServiceReference.Login(); login.User = smsSettings.WsUsername; login.Password = smsSettings.WsPassword; login.DriverId = smsSettings.MamDriverIdentifier; var result = _service.GetStatus(login); return(result); }
//public string SendSms(long[] telDestArr, string testoSMS, string alias = null, string IdSMS = null, bool InviaConAlias = false) { //public string SendSms(IList<SmsHQL> telDestArr, string testoSMS, string alias = null, string IdSMS = null, bool InviaConAlias = false) { public string SendSms(IList telDestArr, string testoSMS, string alias = null, string IdSMS = null, bool InviaConAlias = false) { var bRet = "FALSE"; ArrayOfLong numbers = new ArrayOfLong(); foreach (Hashtable tel in telDestArr) { numbers.Add(Convert.ToInt64(GetPhoneNumber(tel))); } //numbers.AddRange(telDestArr.Select(x => Convert.ToInt64(x.SmsPrefix + x.SmsNumber)).ToArray()); try { var smsSettings = _orchardServices.WorkContext.CurrentSite.As <SmsSettingsPart>(); // Imposto Guid univoco se la richiesta non arriva da SmsGateway if (String.IsNullOrEmpty(IdSMS)) { IdSMS = new Guid().ToString(); } if (InviaConAlias) { if (String.IsNullOrEmpty(alias)) { alias = smsSettings.SmsFrom; } } else { alias = null; } SmsServiceReference.Sms sms = new SmsServiceReference.Sms { DriverId = smsSettings.MamDriverIdentifier, SmsFrom = (_orchardServices.WorkContext.CurrentUser != null?_orchardServices.WorkContext.CurrentUser.UserName:"******"), MamHaveAlias = InviaConAlias, Alias = alias, SmsPrority = smsSettings.SmsPrority ?? 0, SmsValidityPeriod = smsSettings.SmsValidityPeriod ?? 3600, ExternalId = IdSMS, SmsBody = testoSMS, SmsTipoCodifica = 0, SmsNumber = numbers, }; SmsServiceReference.SmsWebServiceSoapClient _service = CreateSmsService(smsSettings); // Place Holder List <SmsServiceReference.PlaceHolderMessaggio> listPH = GetPlaceHolder(telDestArr, testoSMS); SmsServiceReference.PlaceHolderMessaggio[] SmsPlaceHolder = null; if (listPH != null && listPH.Count > 0) { SmsPlaceHolder = listPH.ToArray(); } // Login SmsServiceReference.Login login = new SmsServiceReference.Login(); login.User = smsSettings.WsUsername; login.Password = smsSettings.WsPassword; login.DriverId = smsSettings.MamDriverIdentifier; var result = _service.SendSMS(login, sms, SmsPlaceHolder); //Log.Info(Metodo + " Inviato SMS ID: " + idSmsComponent); bRet = result; } catch (Exception ex) { Logger.Error(ex, ex.Message + " :: " + ex.StackTrace); } return(bRet); }