public async Task ReactionAdded(SlackEventData slackEventData) { var timestamp = slackEventData.Item.Ts; var government = _governmentRepository.GetGovernment(); if (timestamp == government.RevolutionTimestamp) { await _governmentService.CountVotes(timestamp, slackEventData.Item.Channel); } }
public async Task <DougResponse> StartRevolutionVote(User leader, string channel) { var government = _governmentRepository.GetGovernment(); if (government.IsInRevolutionCooldown()) { return(new DougResponse(string.Format(DougMessages.RevolutionCooldown, government.CalculateRevolutionCooldown()))); } var timestamp = await _slack.BroadcastMessage(string.Format(DougMessages.RevolutionVote, _userService.Mention(leader)), channel); await _slack.AddReaction(DougMessages.UpVote, timestamp, channel); await _slack.AddReaction(DougMessages.Downvote, timestamp, channel); _governmentRepository.StartRevolutionVote(leader.Id, timestamp); return(new DougResponse()); }