private async Task RunPromptAsync([NotNull] Message message)
        {
            var key    = PromptDataMessage.ToKey(message);
            var result = await Client.Cache.Prompts.GetAsync(key);

            if (result is null)
            {
                return;
            }

            var state = (result.Data as PromptDataMessage) !;
            // ReSharper disable once PossibleNullReferenceException
            var delay = await state.RunAsync(message, state);

            if (delay is null)
            {
                await Client.Cache.Prompts.DeleteAsync(key);
            }
            else
            {
                await Client.Cache.Prompts.SetAsync(result, (TimeSpan)delay);
            }
        }
 private Task RunAsync(PromptDataMessage data, Message message)
 {
     return(Task.CompletedTask);
 }