Beispiel #1
0
 public async Task Process(CancellationToken token)
 {
     foreach (var smarting in _smartinger.ThatHasBirthday())
     {
         await _client.ChatPostMessage(_channels.SmartebokaChannel, $"Idag jazzulerer vi {smarting.Name} med {_timing.CalculateAge(smarting.BirthDate)}-årsdagen!");
     }
 }
Beispiel #2
0
        public async Task <EventHandledResponse> Handle(EventMetaData data, AppMentionEvent message)
        {
            var unanswered = await _inviter.SendRemindersToUnanswered();

            if (unanswered.Any())
            {
                var uText = unanswered.Select(u => $"Reminded {u.SlackUsername} to RSVP {u.EventTopic}");
                var aggr  = $"{uText.Aggregate((x, y) => x + "\n" + y)}";
                await _client.ChatPostMessage(message.Channel, aggr);
            }
            else
            {
                await _client.ChatPostMessage(message.Channel, $"No unanswered invites or no existing invites for next storsdag");
            }

            return(new EventHandledResponse("OK"));
        }
        public async Task <EventHandledResponse> Handle(EventMetaData data, AppMentionEvent message)
        {
            var index          = new Random().Next(_smartinger.Smartingene.Count);
            var randomSmarting = _smartinger.Smartingene[index];
            await _client.ChatPostMessage(message.Channel, randomSmarting.Name);

            return(new EventHandledResponse("OK"));
        }
Beispiel #4
0
        public async Task <ChatPostMessageResponse> PostMessageQuestionAsync(Question question)
        {
            var chatPost = new ChatPostMessageRequest
            {
                Channel = question.Recipient,
                Text    = string.Empty,
                as_user = "******",
                Blocks  = ToBlocks(question).ToArray()
            };

            return(await _slackClient.ChatPostMessage(chatPost));
        }
Beispiel #5
0
        public async Task <EventHandledResponse> Handle(EventMetaData data, AppMentionEvent message)
        {
            var nextStorsdag = await _eventStorage.GetNextEvent(EventTypes.StorsdagEventType);

            var invitations = await _inviteStorage.GetInvitations(nextStorsdag.RowKey);

            var rapport = nextStorsdag.Topic;

            foreach (var inviteGroup in invitations.GroupBy(i => i.Rsvp))
            {
                string names = inviteGroup.Select(i => i.SlackUsername).Aggregate((x, y) => x + ", " + y);
                rapport += $"\n• `{inviteGroup.Key}` : {names}";
            }

            await _client.ChatPostMessage(message.Channel, rapport);

            return(new EventHandledResponse("OK"));
        }
Beispiel #6
0
        public async Task <IEnumerable <InvitationsEntity> > SendRemindersToUnanswered()
        {
            var nextStorsdag = await _eventStorage.GetNextEvent(EventTypes.StorsdagEventType);

            var invitations = await _inviteStorage.GetInvitations(nextStorsdag.RowKey);

            var unanswered = invitations.Where(i => i.Rsvp == RsvpValues.Invited);

            //unanswered = unanswered.Where(u => u.SlackUsername == "johnkors");

            foreach (var invite in unanswered)
            {
                _logger.LogInformation($"Reminding {invite.SlackUsername} about {invite.EventTopic}");
                var res = await _slackClient.ChatPostMessage(invite.SlackUserId, "Hei, hørte ikke noe fra deg :/ ");
                await SendInviteInSlackDM(invite);
            }

            return(unanswered);
        }
Beispiel #7
0
        public async Task <EventHandledResponse> Handle(EventMetaData data, AppMentionEvent message)
        {
            var messageText = message.Text.Replace($"wolf ", "");

            var wolfram = new WolframAlpha(_options.Value.WulframAlphaAppId);
            var results = wolfram.Query(messageText);
            var text    = "";

            if (results != null)
            {
                foreach (var pod in results.Pods)
                {
                    if (pod.SubPods != null)
                    {
                        foreach (var subPod in pod.SubPods)
                        {
                            if (!string.IsNullOrEmpty(subPod.Title))
                            {
                                text += $"•{subPod.Title}\n";
                            }

                            text += $"{subPod.Plaintext} \n";
                            text += $"\n";
                        }
                    }
                }
            }

            if (string.IsNullOrEmpty(text))
            {
                text = "Wulf aner ikke 🐺";
            }

            await _client.ChatPostMessage(message.Channel, text);

            return(new EventHandledResponse("OK"));
        }
Beispiel #8
0
 public async Task Process(CancellationToken token)
 {
     await _client.ChatPostMessage(_channels.SmartebokaChannel, "Storsdag!");
 }
Beispiel #9
0
 public async Task Handle(EventMetaData eventMetadata, AppMentionEvent appMentioned)
 {
     var text = _handlers.Select(handler => handler.GetHelpDescription()).Where(s => !string.IsNullOrEmpty(s.HandlerTrigger)).Aggregate("", (current, helpDescription) => current + $"\n• `{helpDescription.HandlerTrigger}` : _{helpDescription.Description}_");
     await _slackClient.ChatPostMessage(appMentioned.Channel, text);
 }
 public async Task Handle(PublishViaWebHook publish, IMessageHandlerContext context)
 {
     await _client.ChatPostMessage("#fplbot-notifications", $"{_prefix}{publish.Message}");
 }