Пример #1
0
        /// <summary>
        /// Push a new message
        /// </summary>
        /// <param name="message">The message to push</param>
        public void Push(IPushoverMessage message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }
            if (String.IsNullOrEmpty(message.User))
            {
                throw new ArgumentException(nameof(message.User));
            }

            var values = message.GetRequestValues();

            values.Add("token", _apiKey);

            using (var client = new WebClient())
            {
                try
                {
                    client.UploadValues(_endpoint, values);
                }
                catch (WebException wex)
                {
                    var response = GetResponseText(wex.Response);
                    throw new PushoverException(ProcessErrorResponse(response), wex);
                }
            }
        }
        /// <summary>
        /// Get a dictionary of request arguments
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        public static NameValueCollection GetRequestValues(this IPushoverMessage message)
        {
            // Build up the request
            var values = new NameValueCollection
            {
                { "user", message.User },
                { "message", message.Message }
            };

            if (!String.IsNullOrEmpty(message.Device))
            {
                values.Add("device", message.Device);
            }

            if (!String.IsNullOrEmpty(message.Title))
            {
                values.Add("title", message.Title);
            }

            if (!String.IsNullOrEmpty(message.Url))
            {
                values.Add("url", message.Url);
            }

            if (!String.IsNullOrEmpty(message.UrlTitle))
            {
                values.Add("url_title", message.UrlTitle);
            }

            values.Add("priority", GetMessagePriority(message.Priority).ToString());

            if (message.Priority == MessagePriority.Emergency)
            {
                values.Add("retry", message.Retry.ToString());
                values.Add("expire", message.Expiration.ToString());
            }

            if (message.Timestamp != null)
            {
                values.Add("timestamp", message.Timestamp.Value.ToEpoch().ToString());
            }

            return(values);
        }
Пример #3
0
        /// <summary>
        /// Push a new message 
        /// </summary>
        /// <param name="message">The message to push</param>
        public void Push(IPushoverMessage message)
        {
            if(message == null) throw new ArgumentNullException("message");
            if(String.IsNullOrEmpty(message.User)) throw new ArgumentException("message.User");

            var values = message.GetRequestValues();
            values.Add("token", _apiKey);

            using (var client = new WebClient())
            {
                try
                {
                    client.UploadValues(_endpoint, values);
                }
                catch (WebException wex)
                {
                    var response = GetResponseText(wex.Response);
                    throw new PushoverException(ProcessErrorResponse(response), wex);
                }
            }
        }
 public void Push(IPushoverMessage message) {
     var apiKey = _orchard.WorkContext.CurrentSite.As<PushoverSettingsPart>().ApiKey;
     var client = new PushoverClient(apiKey);
     client.Push(message);
 }