Пример #1
0
        public void Constructor_Tests()
        {
            {
                Assert.Throws <ArgumentNullException>(() => new WebHookClient(null));
                Assert.Throws <ArgumentNullException>(() => new WebHookClient(null, new HttpClientHandler()));
                Assert.Throws <ArgumentNullException>(() => new WebHookClient(new JsonNetHttpContentConverter(), null));
            }

            {
                var client = new WebHookClient(new JsonNetHttpContentConverter());

                Assert.NotNull(client);
            }

            {
                var client = new WebHookClient(new JsonNetHttpContentConverter(), new HttpClientHandler());

                Assert.NotNull(client);
            }

            {
                var client = new WebHookClient(new JsonNetHttpContentConverter(), new HttpClientHandler(), true);

                Assert.NotNull(client);
            }
        }
Пример #2
0
        // Post message example
        public async void PostMessage()
        {
            message = new WebHookMessage
            {
                UserName  = "******",
                AvatarURL = avatarURL,
                Content   = "**Content text.**",
                Embeds    = new List <Embed>
                {
                    new Embed
                    {
                        Color  = 15258703,
                        Author = new Author {
                            Name = "Author", URL = authorURL, IconURL = authorIconURL
                        },
                        Title       = "Title of message.",
                        URL         = messageURL,
                        Description = "Description of message.",
                        Fields      = new List <Field>
                        {
                            new Field {
                                Name = "Name1", Value = "Value1", Inline = true
                            },
                            new Field {
                                Name = "Name2", Value = "Value2", Inline = true
                            },
                            new Field {
                                Name = "Name3", Value = "Value3", Inline = true
                            },
                            new Field {
                                Name = "Name4", Value = "Value4", Inline = true
                            },
                        },
                        Image = new Library.Models.Image {
                            URL = imageURL
                        },
                        Thumbnail = new Thumbnail {
                            URL = imageURL
                        },
                        Footer = new Footer {
                            Text = "Footer text.", IconURL = authorIconURL
                        },
                        Timestamp = WebHookClient.DateTimeToISO8601(2020, 1, 1, 10, 15, 20)
                    }
                },
                TTS = false
            };

            client = new WebHookClient(serverURL);
            // client.WebHookURL = URL;

            int code = await client.PostMessage(message);

            lblStatusCode.Text = code.ToString();
        }
Пример #3
0
        public async Task SendAsync_Tests()
        {
            using (var client = new WebHookClient(new JsonNetHttpContentConverter()))
            {
                {
                    Payload payload = null;

                    await Assert.ThrowsAsync <ArgumentNullException>(async() => await client.SendAsync("", "test"));

                    await Assert.ThrowsAsync <ArgumentNullException>(async() => await client.SendAsync("", new Payload {
                        Text = "test"
                    }));

                    await Assert.ThrowsAsync <ArgumentNullException>(async() => await client.SendAsync(WebHookUrl, payload));
                }

                {
                    var message = new StringBuilder("simple message test.")
#if NETCOREAPP2_0
                                  .Append("netcoreapp2.0.")
#elif NETCOREAPP1_1
                                  .Append("netcoreapp1.1.")
#elif NETCOREAPP1_0
                                  .Append("netcoreapp1.0.")
#elif NET46
                                  .Append("net46.")
#endif
                                  .ToString();

                    var response = await client.SendAsync(WebHookUrl, message);

                    Assert.Equal(ResponseMessage.Ok, response);
                }

                {
                    var message = new StringBuilder("structured message test.")
#if NETCOREAPP2_0
                                  .Append("netcoreapp2.0.")
#elif NETCOREAPP1_1
                                  .Append("netcoreapp1.1.")
#elif NETCOREAPP1_0
                                  .Append("netcoreapp1.0.")
#elif NET46
                                  .Append("net46.")
#endif
                                  .ToString();

                    var response = await client.SendAsync(WebHookUrl, new Payload { Text = message });

                    Assert.Equal(ResponseMessage.Ok, response);
                }
            }
        }
Пример #4
0
        // Post file with some payload example
        public async void PostFile()
        {
            message = new WebHookMessage
            {
                UserName  = "******",
                AvatarURL = avatarURL,
                Content   = "**Content text.**",
                TTS       = false
            };

            client = new WebHookClient(serverURL);

            int code = await client.PostFile(fileName, message);

            lblStatusCode.Text = code.ToString();
        }
Пример #5
0
        public void SendPRReport(string gitHubToken)
        {
            GitHubCore core    = new GitHubCore(gitHubToken);
            var        reports = core.GetPRPeports();
            var        users   = core.GetUsers();
            var        client  = new WebHookClient(ConfigurationManager.AppSettings["SendToSlackUrl"]);

            reports.ForEach(r =>
            {
                var message = BuildSlackMessage(r, users);
                client.SendMessage(message);
            });
            using (var ms = ConvertToExcel(reports))
            {
                var fileName = $"PR_report_{DateTimeOffset.UtcNow.ToEasternTime():yyyy-dd-M--HH-mm-ss}.xlsx";
                AzureBlob.AzureBlob uploader = new AzureBlob.AzureBlob();
                string link = uploader.UploadBlobFromStream(ms, fileName);
                client.SendMessage(BuildReportLinkMessage(link));
            }
        }
Пример #6
0
        public BotHost(
            ConfigHost configHost,
            ILogger <BotHost> logger)
        {
            _configHost = configHost;
            _logger     = logger;

            _bot = WebHookClient.CreateWebHookClient()
                   .Configure(options =>
            {
                options
                .Listen(_configHost.Config.Port)
                .UseEncryptKey(_configHost.Config.Auth.EncryptKey)
                .UseVerifyToken(_configHost.Config.Auth.VerifyToken)
                .UseBotAuthorization(_configHost.Config.Auth.Token);
            }).Build();

            _bot.Start();

            _bot.Event.Subscribe(ProcessEvent);
        }
 public async Task SendMessageAsync_WithIconEmoji()
 {
     var client = new WebHookClient(HookUrl);
     var message = new Message($"[{DateTime.UtcNow}]\tTest message with icon emoji", icon: Emoji);
     await client.SendMessageAsync(message);
 }
 public async Task SendMessageAsync_WithUsernameTest()
 {
     var client = new WebHookClient(HookUrl);
     var message = new Message($"[{DateTime.UtcNow}]\tTest message with username", username: "******");
     await client.SendMessageAsync(message);
 }
 public async Task SendMessageAsync_Test()
 {
     var client = new WebHookClient(HookUrl);
     var message = new Message($"[{DateTime.UtcNow}]\tTest message");
     await client.SendMessageAsync(message);
 }
Пример #10
0
 static SlackHookHelper()
 {
     Client = new WebHookClient(SlackWebHook);
 }