コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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());
        }