/// <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); }
/// <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); }