Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        //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);
        }