Esempio n. 1
0
        public void Run()
        {
            while (_running)
            {
                List <SlackMessageApi> messages = null;

                if (_lastMessage == null)
                {
                    messages = _api.GetMessagesFromChannel(_token, _channelId, 100).Result.ToList();
                }
                else
                {
                    messages = _api.GetMessagesFromChannel(_token, _channelId, 100, _lastMessage.TimeStamp).Result.ToList();
                }

                if (_lastMessage == null)
                {
                    _lastMessage = messages.Any() ? messages.FirstOrDefault() : null;
                }
                else
                {
                    _lastMessage = messages.Any() ? messages.FirstOrDefault() : _lastMessage;

                    if (messages.Any())
                    {
                        foreach (var message in messages)
                        {
                            var parseLine  = message.Text.Split(" ");
                            var commandStr = parseLine[0].ToLowerInvariant();

                            var command = _commands.Keys.Where(c => c == commandStr).FirstOrDefault();

                            if (_commands.ContainsKey(commandStr))
                            {
                                _commands[commandStr].Invoke();
                            }
                        }
                    }
                }

                Thread.Sleep(10000);
            }
        }
Esempio n. 2
0
        public void Run()
        {
            while (_running)
            {
                try
                {
                    List <SlackMessageApi> messages = null;

                    if (_lastMessage == null)
                    {
                        messages = _api.GetMessagesFromChannel(_token, _channelId, 100).Result.ToList();
                    }
                    else
                    {
                        messages = _api.GetMessagesFromChannel(_token, _channelId, 100, _lastMessage.TimeStamp).Result.ToList();
                    }

                    if (_lastMessage == null)
                    {
                        _lastMessage = messages.Any() ? messages.FirstOrDefault() : null;
                    }
                    else
                    {
                        _lastMessage = messages.Any() ? messages.FirstOrDefault() : _lastMessage;

                        if (messages.Any())
                        {
                            foreach (var message in messages)
                            {
                                ExecuteCommand(message.Text);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    _logger.Error(ex);
                }

                Thread.Sleep(1000);
            }
        }