예제 #1
0
        /// <summary>
        ///
        /// </summary>
        public void Run()
        {
            var stop = false;
            var i    = 1;

            while (!stop) // never stop :)
            {
                try
                {
                    Console.WriteLine();
                    Console.WriteLine($"################## ITERATION {i} ##################");

                    var idList = GetSearchResultIDs();
                    Console.WriteLine($"{idList.Count} centres identifiés autour de {_city}");
                    ProcessIDs(idList, i);

                    Thread.Sleep(10000); // Dodo pour 10s pour eviter de se faire ban
                    i++;
                }
                catch (Exception e)
                {
                    _logger.WriteLine(e.Message);
                    _slackClient.SendMessage(e.Message, true);
                }
            }
        }
예제 #2
0
        private void SendSlackMessage(ConcurrentBag <ReservationRequest> priorityReservations)
        {
            var slackClient = new SlackClient();

            var payload = CreatePayloadFromReservationInformation(CommunicationService.GetSlackChannel(),
                                                                  priorityReservations.Count);

            slackClient.SendMessage(payload, CommunicationService.GetSlackWebHook());
        }
예제 #3
0
        public static async Task Run(
            [ServiceBusTrigger("atmosphere-face-training-sent", AccessRights.Listen, Connection = Settings.SB_CONN_NAME)] string message,
            TraceWriter log)
        {
            log.Info($"Queue trigger '{nameof(CleanupTag)}' with message: {message}");
            var slackInput = message.FromJson <TaggingMessage>();

            var firstName = (await getMapping(slackInput.UserId))?.FirstName;
            await Task.WhenAll(
                storeFaceUserMapping(slackInput.FaceId, slackInput.UserId),
                SlackClient.SendMessage(getMessage(slackInput.FaceId, firstName), log, slackInput.ResponseUrl));
        }
예제 #4
0
        public static async Task Run(
            [ServiceBusTrigger("atmosphere-face-cleanup", AccessRights.Listen, Connection = Settings.SB_CONN_NAME)] string message,
            TraceWriter log)
        {
            log.Info($"Queue trigger '{nameof(CleanupTag)}' with message: {message}");
            var slackInput = message.FromJson <TaggingMessage>();

            var rowsDeleted = await cleanupDb(slackInput.FaceId);

            log.Info($"{rowsDeleted} rows cleaned up from DB for faceId {slackInput.FaceId}");

            await SlackClient.SendMessage(getMessage(slackInput.FaceId), log, slackInput.ResponseUrl);
        }
예제 #5
0
        public static async Task Run(
            [ServiceBusTrigger("atmosphere-face-identified", AccessRights.Listen, Connection = Settings.SB_CONN_NAME)] string message,
            TraceWriter log)
        {
            log.Info($"Topic trigger '{nameof(FinalizeIdentified)}' with message: {message}");
            var tupleMessage = message.FromJson <Tuple <CognitiveIdentifyResponse.Candidate, Face> >();
            var candidate    = tupleMessage.Item1;
            var face         = tupleMessage.Item2;

            var firstName = await getUserName(face.Id);

            await SlackClient.SendMessage(getMessage(face.Id.ToString(), firstName, candidate.Confidence), log);
        }
예제 #6
0
        public void SendMessage_With_Incorrect_Url()
        {
            //ARRANGE
            string      incorrectSlackUrl = "https://hooks.slack.com";
            SlackClient sut = new SlackClient(incorrectSlackUrl);

            Payload payload = new Payload();

            //ACT
            sut.SendMessage(payload);

            //ASSERT
            Assert.IsTrue(true);
        }
예제 #7
0
        public void SendMessage_With_Incorrect_Slack_Url()
        {
            //ARRANGE
            string      incorrectSlackUrlWithAccessToken = "https://hooks.slack.com/services/T0ZA94TDE/B0ZA97MC0/CvraASyHz69dL5VGyE1dbYn";
            SlackClient sut = new SlackClient(incorrectSlackUrlWithAccessToken);

            Payload payload = new Payload();

            //ACT
            sut.SendMessage(payload);

            //ASSERT
            Assert.IsTrue(true);
        }
예제 #8
0
        public void PostMessage()
        {
            string urlWithAccessToken = ""; // Use your slack webhook here : D

            SlackClient client = new SlackClient();

            SlackPayload payload = new SlackPayload()
            {
                Channel = "avengers",
                Text    = "Here we go!",
            };

            client.SendMessage(payload, urlWithAccessToken);
        }
예제 #9
0
        public void SendMessage_With_Default_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload();

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
예제 #10
0
        private void TestButton_Click(object sender, EventArgs e)
        {
            var client = new SlackClient();

            var webHook = this.WebHookUrlTextBox.Text;

            var channel = this.ChannelTextBox.Text;

            var user = this.UserTextBox.Text;

            var text = this.SimpleMessageTextBox.Text;

            var message = new SlackMessage();

            message.Username = user;
            message.Text     = text;

            message.Attachments = this.SlackMessage.Attachments.Select(z =>
            {
                var a           = new Attachment();
                a.Text          = z.Text;
                a.PreText       = z.PreText;
                a.AuthorIconUrl = z.AuthorIconUrl;
                a.AuthorName    = z.AuthorName;
                if (z.Fields != null)
                {
                    a.Fields = z.Fields.Select(f => new Field {
                        Title = f.Title, Value = f.Value, Short = f.Short
                    }).ToArray();
                }
                a.FooterIconUrl = z.FooterIconUrl;
                a.ImageUrl      = z.ImageUrl;
                a.ThumbUrl      = z.ThumbUrl;
                a.TimeStamp     = z.TimeStamp;
                a.Title         = z.Title;
                a.TitleLinkUrl  = z.TitleLinkUrl;
                a.AuthorLink    = z.AuthorLink;
                a.Color         = z.Color;
                a.Fallaback     = z.Fallaback;
                a.Footer        = z.Footer;

                return(a);
            }).ToArray();



            this.ResponseTextBox.Text = client.SendMessage(message, webHook);
        }
예제 #11
0
        public void SendMessage_With_Attachments_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload();

            payload.Attachments.Add(new Attachment("Fallback Attachment, Test from SlackClient.ServiceLibrary.IntegrationTests")
            {
                Color  = "danger",
                Text   = "Optional Text from test",
                Fields = new List <Field>()
                {
                    new Field("ShortField1")
                    {
                        Short = true,
                        Value = "Value for Short Field 1"
                    },
                    new Field("ShortField2")
                    {
                        Short = true,
                        Value = "Value for Short Field 2"
                    },
                    new Field("LongField1")
                    {
                        Short = false,
                        Value = "Value for *Long Long Long Long* Long Field 1"
                    },
                    new Field("LongField2WithFormat")
                    {
                        Short = false,
                        Value = "```Value for Long Long Long Long Long Field 2```"
                    }
                }
            });

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
        public override DTSExecResult Execute(Connections connections, VariableDispenser variableDispenser,
                                              IDTSComponentEvents componentEvents, IDTSLogging log, object transaction)
        {
            try
            {
                var client  = new SlackClient();
                var message = new SlackMessage();
                message.Text     = this.Text;
                message.Username = this.User;
                client.SendMessage(message, this.WebHookUrl);
            }
            catch (Exception e)
            {
                componentEvents.FireError(0, "Slact Taks", "Error sending message to Slack. Webhook = " + WebHookUrl, "", 0);
            }

            //Always retun sucess because we do not want to fail package if we cannot send message to Slack
            //TODO: Should this be a setting?
            return(DTSExecResult.Success);
        }
예제 #13
0
        public void SendMessage_With_Link_In_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username = "******",
                Text     = @"https://slack.com/: <https://slack.com/|Click aquí>",
                Channel  = "#devtest"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
예제 #14
0
        public void SendMessage_With_Simple_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username = "******",
                Text     = "MessageSample From Integrarion Tests .Net",
                Channel  = "#devtest"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
        private void TestButton_Click(object sender, EventArgs e)
        {
            var client = new SlackClient();

            var webHook = this.WebHookUrlTextBox.Text;

            var channel = this.ChannelTextBox.Text;

            var user = this.UserTextBox.Text;

            var text = this.TextTextBox.Text;


            var attachement = new Attachment
            {
                AuthorIconUrl = this.AttachmentAuthorIconUrlTextBox.Text,
                Text          = this.AttachmentTextTextBox.Text,
                AuthorLink    = this.AttachmentAuthorLinkUrlTextBox.Text,
                AuthorName    = this.AttachmentAuthorNameTextBox.Text,
                Color         = this.AttachmentColorTextBox.Text,
                Fallaback     = this.AttachmentFallabackTextTextBox.Text,
                Footer        = this.AttachmentFooterTextBox.Text,
                FooterIconUrl = this.AttachmentFooterIconUrlTextBox.Text,
                ImageUrl      = this.AttachmentImageUrlTextBox.Text,
                PreText       = this.AttachmentPreTextTextBox.Text,
                ThumbUrl      = this.AttachmentThumbUrlTextBox.Text,
                TimeStamp     = (int)this.AttachmentTimeStampDatePicker.Value.ToEpochTime(),
                Title         = this.AttachmentTitleTextBox.Text,
                TitleLinkUrl  = this.AttachmentTitleLinkUrlTextBox.Text
            };

            var message = new SlackMessage
            {
                Username    = user,
                Text        = text,
                Attachments = new [] { attachement }
            };


            this.ResponseTextBox.Text = client.SendMessage(message, webHook);
        }
예제 #16
0
        public void SendMessage_With_EmojiUrl_In_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username  = "******",
                Text      = @"Text with custom Emoji Icon",
                Channel   = "#devtest",
                IconEmoji = @":ghost:"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
예제 #17
0
        public void SendMessage_With_IconUrl_In_Payload()
        {
            //ARRANGE
            SlackClient             sut      = new SlackClient(_slackUrlWithAccessToken);
            ResponseSlackClientEnum expected = ResponseSlackClientEnum.ok;
            ResponseSlackClientEnum actual;

            Payload payload = new Payload()
            {
                Username = "******",
                Text     = @"Text with custom Icon Url",
                Channel  = "#devtest",
                IconUrl  = @"https://slack.com/img/icons/app-57.png"
            };

            //ACT
            actual = sut.SendMessage(payload);

            //ASSERT
            Assert.AreEqual(expected, actual);
        }
        public static async Task Run(
            [ServiceBusTrigger("atmosphere-face-not-identified", AccessRights.Listen, Connection = Settings.SB_CONN_NAME)] string message,
            TraceWriter log)
        {
            log.Info($"Topic trigger '{nameof(RequestTaggingOnSlack)}' with message: {message}");
            var face = message.FromJson <Face>();

            // check image size
            using (var inputStream = BlobStorageClient.DownloadBlob(Settings.CONTAINER_RECTANGLES, $"{face.Id}.jpg"))
                using (var sourceImage = Image.FromStream(inputStream))
                {
                    log.Info($"The size of face thumbnail is {sourceImage.Size}");
                    if (sourceImage.Size.Width < MIN_WIDTH || sourceImage.Size.Height < MIN_HEIGHT)
                    {
                        await SlackClient.SendMessage(getMessageImageTooSmall(face.Id, sourceImage.Size), log);
                    }
                    else
                    {
                        await SlackClient.SendMessage(getMessageForTagging(face.Id), log);
                    }
                }
        }
        public void TestMessage()
        {
            var client = new SlackClient("");

            client.SendMessage("", "", "", "");
        }