public bool SendSms(Sms sms) { SmsConfig config = GetConfig(); if (config != null) { //"[email protected]:project", "novohealth123" SmsProxy smsengine = new SmsProxy(config.UserName, config.Password); List <string> tonumber = new List <string>(); tonumber.Add(sms.Msisdn); sms.Status = SmsStatus.Pending; SmsEngine.ServiceReference1.ResponseInfo resp = SmsProxy.SendSms(sms.FromId, tonumber, sms.Message, Convert.ToDateTime(sms.DeliveryDate)); sms.ServerCode = resp.ErrorCode.ToString(); if (resp.ErrorCode.Equals(0)) { sms.ServerResponse = resp.ExtraMessage; sms.Status = SmsStatus.Delivered; } else { sms.ServerResponse = resp.ErrorMessage; } Savemessage(sms); return(true); } return(false); }
private void Send(SmsProxy sms) { if (string.IsNullOrEmpty(sms.Body)) { throw new SmsFormatException("Body of message cannot be empty"); } if (sms.Recipients.Count == 0) { throw new SmsFormatException("A minimum of one recipient is required"); } if (string.IsNullOrEmpty(sms.From)) { throw new SmsFormatException("From field cannot be empty"); } //foreach (var recipient in sms.Recipients) //{ // if (!recipient.PhoneNumber.IsValidNGNMobile()) // throw new SmsFormatException("Invalid Mobile number - " + recipient.PhoneNumber); //} _smsRepository.Add((OutboundSms)sms); _smsRepository.CommitChanges(); }
public static SmsProvider[] QueryProvider(string server, string userName, string password) { SmsProvider[] providers; var binding = new BasicHttpsBinding { AllowCookies = true }; var vimEndpoint = new EndpointAddress(string.Format("https://{0}/sdk/vimService", server)); var smsEndpoint = new EndpointAddress(string.Format("https://{0}/sms/sdk", server)); ServicePointManager.ServerCertificateValidationCallback += (sender, x509Certificate, chain, errors) => true; using (var client = new VimPortTypeClient(binding, vimEndpoint)) { client.Open(); var vimProxy = new VimProxy(client); string sessionId; var content = vimProxy.RetrieveServiceContent(); var credential = new NetworkCredential { UserName = userName, Password = password }; vimProxy.Login(content.sessionManager, credential, null, out sessionId); using (var smsClient = new SmsPortTypeClient(binding, smsEndpoint)) { smsClient.Open(); var smsProxy = new SmsProxy(smsClient, sessionId); var storageManager = smsProxy.QueryStorageManager(); var providerRefs = smsProxy.QueryProvider(storageManager); providers = providerRefs.Select(smsProxy.QueryProviderInfo).Select(GetProvider).ToArray(); smsClient.Close(); } vimProxy.Logout(content.sessionManager); client.Close(); } return(providers); }
public void Send(string from, List <string> phoneNumbers, string body) { var sms = new SmsProxy { Body = body, From = from, Recipients = new List <SmsRecipientProxy>() }; foreach (var phoneNumber in phoneNumbers.Where(phoneNumber => !string.IsNullOrEmpty(phoneNumber))) { sms.Recipients.Add(new SmsRecipientProxy { PhoneNumber = phoneNumber }); } Send(sms); }
public static SmsProvider RegisterProvider( ProviderElement providerConfiguration, X509Certificate2 vasaCertificate, String vCenter, String vCenterUserName, String vCenterPassword) { SmsProvider provider; var smsData = new VasaProviderSpec { name = providerConfiguration.Name, url = String.Format("{0}", providerConfiguration.VasaVersionXmlUri), username = providerConfiguration.Credentials.Login, password = providerConfiguration.Credentials.Password, certificate = Convert.ToBase64String(vasaCertificate.RawData) }; var binding = new BasicHttpsBinding { AllowCookies = true }; var vimEndpoint = new EndpointAddress(string.Format("https://{0}/sdk/vimService", vCenter)); var smsEndpoint = new EndpointAddress(string.Format("https://{0}/sms/sdk", vCenter)); ServicePointManager.ServerCertificateValidationCallback += (sender, x509Certificate, chain, errors) => true; using (var client = new VimPortTypeClient(binding, vimEndpoint)) { client.Open(); var vimProxy = new VimProxy(client); string sessionId; var content = vimProxy.RetrieveServiceContent(); var vCenterCredential = new NetworkCredential { UserName = vCenterUserName, Password = vCenterPassword }; vimProxy.Login(content.sessionManager, vCenterCredential, null, out sessionId); using (var smsClient = new SmsPortTypeClient(binding, smsEndpoint)) { smsClient.Open(); var smsProxy = new SmsProxy(smsClient, sessionId); var storageManager = smsProxy.QueryStorageManager(); var taskRef = smsProxy.RegisterProvider(storageManager, smsData); var timeout = TimeSpan.FromMinutes(10); if (!smsProxy.WaitSmsTask(taskRef, timeout)) { try { var vimTaskRef = new DataCore.Vim.ManagedObjectReference { type = taskRef.type, Value = taskRef.Value }; client.CancelTask(vimTaskRef); } catch (Exception ex) { _traceSource.TraceEvent(TraceEventType.Warning, 0, Resources.ErrorCancelingVasaProviderRegistration, taskRef.Value, ex.ToString()); } var msg = String.Format( Resources.VasaProviderRegistrationTimeoutError, taskRef.Value, timeout); _traceSource.TraceEvent(TraceEventType.Error, 0, msg); throw new TimeoutException(msg); } var task = smsProxy.QuerySmsTaskInfo(taskRef); if (task.state.Equals("error", StringComparison.OrdinalIgnoreCase)) { var error = task.error; var msg = String.Format( Resources.ErrorOnVasaProviderRegistration, error.fault.GetType().Name, error.localizedMessage); _traceSource.TraceEvent(TraceEventType.Error, 0, msg); throw new Exception(msg); } var result = smsProxy.QuerySmsTaskResult(taskRef); var providerInfo = smsProxy.QueryProviderInfo((Sms.ManagedObjectReference)result); provider = GetProvider(providerInfo); smsClient.Close(); } vimProxy.Logout(content.sessionManager); client.Close(); } return(provider); }