コード例 #1
0
        /// <summary>
        /// Sends a message to the Pushover service
        /// </summary>
        /// <param name="title"></param>
        /// <param name="message"></param>
        /// <param name="priority"></param>
        /// <param name="sound"></param>
        /// <param name="callback"></param>
        void Pushover(string title, string message, string priority = "high", string sound = "gamelan", Action <bool> callback = null)
        {
            switch (priority.ToLower())
            {
            case "high":
                priority = "1";
                break;

            case "low":
                priority = "0";
                break;

            case "quiet":
                priority = "-1";
                break;
            }

            var payload = new PushoverMessage {
                title = title, message = message, priority = priority, sound = sound
            };

            if (!ErrorHandling(payload))
            {
                callback?.Invoke(false);
                return;
            }

            WebRequest(pushoverUrl, payload.QueryString(), callback);
        }
コード例 #2
0
        bool ErrorHandling(PushoverMessage payload, Action <bool> callback = null)
        {
            if (string.IsNullOrEmpty(pushoverAppKey) || pushoverAppKey.Length != 30)
            {
                LogWarning("Pushover application key not set! Please set it and try again");
                return(false);
            }

            if (string.IsNullOrEmpty(pushoverUserKey) || pushoverUserKey.Length != 30)
            {
                LogWarning("Pushover user key not set! Please set it and try again");
                return(false);
            }

            if (string.IsNullOrEmpty(payload.title))
            {
                LogWarning("Title not given! Please enter one and try again");
                return(false);
            }

            if (string.IsNullOrEmpty(payload.message))
            {
                LogWarning("Message not given! Please enter one and try again");
                return(false);
            }

            return(true);
        }
コード例 #3
0
        public void Notify(Notification notification)
        {
            var config = _keyValueStore.Get <PushoverConfig>("pushover.config");

            if (config == null)
            {
                _logger.Warn("Pushover not configured.");
                return;
            }

            var message = new PushoverMessage(config.AppKey, config.UserKey, notification.Message)
            {
                Title = notification.Title
            };

            _pushoverClient.Send(message);
        }
コード例 #4
0
        public async Task PushWithDefaultKey_ReturnsSuccessful()
        {
            //  Arrange
            string title = "Test title";
            string text  = "This is a test push notification message";

            //  Act
            Pushover pclient = new Pushover(TEST_APP_KEY, TEST_USER_KEY);
            var      message = new PushoverMessage()
            {
                Title = title, Text = text
            };
            PushoverResponse response = await pclient.SendPushAsync(message);

            //  Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(1, response.Status);
        }
コード例 #5
0
        public async Task PushWithNoKey_ReturnsError()
        {
            //  Arrange
            string title = "Test title";
            string text  = "This is a test push notification message";

            //  Act
            Pushover pclient = new Pushover(TEST_APP_KEY);
            var      message = new PushoverMessage()
            {
                Title = title, Text = text
            };

            PushoverResponse response = await pclient.SendPushAsync(message);

            //  Assert - above code should error before this
            Assert.Fail();
        }
コード例 #6
0
        static void Main(string[] args)
        {
            PushoverClient api = new PushoverClient("token");

            PushoverMessage message = new PushoverMessage()
            {
                Title    = "title",
                Message  = "message",
                Priority = Priority.High,
                Sound    = "magic",
                Url      = "https://www.github.com",
                UrlTitle = "Github",
            };

            bool result = api.Send("token", message);

            Console.Read();
        }
コード例 #7
0
        public void PushWithValidParms_ReturnsSuccessful()
        {
            //  Arrange
            string title = "Test title";
            string text  = "This is a test push notification message";

            //  Act
            Pushover pclient = new Pushover(TEST_APP_KEY);
            var      message = new PushoverMessage()
            {
                Title = title, Text = text
            };

            message.Recipients.Add(TEST_USER_KEY);
            PushoverResponse response = pclient.SendPush(message);

            //  Assert
            Assert.IsNotNull(response);
            Assert.AreEqual(1, response.Status);
        }
コード例 #8
0
        public IActionResult Post([FromBody] PushoverMessage message)
        {
            if (message == null)
            {
                return(BadRequest());
            }

            var parameters = new NameValueCollection {
                { "token", message.AppToken },
                { "user", message.UserKey },
                { "message", message.TextMessage }
            };

            using (var client = new WebClient())
            {
                client.UploadValues("https://api.pushover.net/1/messages.json", parameters);
            }

            return(Ok(message));
        }
コード例 #9
0
ファイル: ConfigService.cs プロジェクト: pixiegnom/hadouken
        public void TestConfig(PushoverConfig config)
        {
            var message = new PushoverMessage(config.AppKey, config.UserKey, "Test notification from Hadouken");

            _pushoverClient.Send(message);
        }