Exemplo n.º 1
0
        private void SendSms(OutboundSms smsMessage)
        {
            _logger.Info("Sending " + smsMessage.ToLongString());

            try
            {
                foreach (var recipient in smsMessage.SmsRecipients)
                {
                    var client = new WebClient();
                    // Add a user agent header in case the requested URI contains a query.
                    client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR1.0.3705;)");
                    client.QueryString.Add("user", _username);
                    client.QueryString.Add("password", _password);
                    client.QueryString.Add("api_id", _apiId);

                    var num = recipient.PhoneNumber;

                    client.QueryString.Add("to", num);
                    client.QueryString.Add("text", smsMessage.Message);
                    client.QueryString.Add("from", smsMessage.Sender);

                    using (var data = client.OpenRead(_baseUrl))
                    {
                        if (data != null)
                        {
                            using (var reader = new StreamReader(data))
                            {
                                var response = reader.ReadToEnd();
                                _logger.Debug("Response from sending to " + smsMessage.ToLongString() + " is " + response);
                            }
                        }
                        else
                        {
                            _logger.Debug("Unable to retrieve data from the specified URL: " + _baseUrl);
                        }
                    }
                }
                ;

                smsMessage.Sent     = 1; // 1 for Success
                smsMessage.DateSent = DateTime.Now;

                _logger.Info("Sending Complete for " + smsMessage.ToLongString());
            }
            catch (Exception ex)
            {
                _logger.Error("Exception occurred sending " + smsMessage.ToLongString() + " : " + ex.Message);
            }
        }
Exemplo n.º 2
0
        private void UpdateSms(OutboundSms smsMessage)
        {
            _logger.Debug("Updating " + smsMessage.ToLongString());

            try
            {
                smsMessage.DateModified = DateTime.Now;
                smsMessage.Attempts++;

                _logger.Info("Update Complete for " + smsMessage.ToLongString());
            }
            catch (DbEntityValidationException dbex)
            {
                _logger.Info("Validation Exception occurred while updating  " + smsMessage.ToLongString() + " : " + dbex.ToLogString());
            }
            catch (Exception ex)
            {
                _logger.Info("Exception occurred while updating  " + smsMessage.ToLongString() + " : " + ex.Message);
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Sends the SMS message.
        /// </summary>
        /// <param name="phoneNumbers">Phone numbers to send SMS message to.</param>
        /// <param name="message">Message body to send.</param>
        /// <returns>Instance of <see cref="SmsResponse"/> with sent SMS response information.</returns>
        /// <exception cref="System.ArgumentNullException">phoneNumbers is null.</exception>
        /// <exception cref="System.ArgumentException">phoneNumbers count equals zero.</exception>
        public async Task <SmsResponse> SendSms(IEnumerable <string> phoneNumbers, string message)
        {
            Argument.ExpectNotNull(() => phoneNumbers);
            Argument.Expect(() => phoneNumbers.Any(), "phoneNumbers", "at least one phone number required");

            List <string> isdnAddresses = phoneNumbers
                                          .Select(a => PhoneNumberConverter.ConvertToIsdn(a))
                                          .ToList();

            var body = String.Empty;

            if (isdnAddresses.Count == 1)
            {
                var raw = new OutboundSmsRaw(isdnAddresses[0], message);
                body = JsonParser <OutboundSmsRaw> .SerializeToJson(raw);
            }
            else
            {
                var numbers = new OutboundSms(isdnAddresses, message);
                body = JsonParser <OutboundSms> .SerializeToJson(numbers);
            }

            return(SmsResponse.Parse(await SendRawRequest(HttpMethod.Post, SendRelativeUrl, body)));
        }