示例#1
0
        private async Task UserOptsOutOfChannel(NewMessage incoming, string channel)
        {
            if (_pendingConfirmations.ContainsKey(incoming.user))
            {
                var _pending = _pendingConfirmations[incoming.user];
                _pendingConfirmations.Remove(incoming.user);

                if (_funcNow() < _pending.OptionTime.AddMinutes(2))
                {
                    _activityLog.Log($"User {incoming.username} has opted out of pizza plans in channel {channel}.");
                    await _state.AddUserToOptOutOfChannel(incoming.GetSendingUser(), channel);

                    await _core.SendMessage(incoming.ConfirmOptOutMessage(channel));
                }
                else
                {
                    _pendingConfirmations.Add(incoming.user, new OptOutOption(incoming.GetSendingUser(), channel, _funcNow()));
                    var message = incoming.RepeatOptOutMessageToConfirm(channel);
                    await _core.SendMessage(message);
                }
            }
            else
            {
                _pendingConfirmations.Add(incoming.user, new OptOutOption(incoming.GetSendingUser(), channel, _funcNow()));
                var message = incoming.RepeatOptOutMessageToConfirm(channel);
                await _core.SendMessage(message);
            }
        }