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); } }
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); } }