public override async Task ExecuteAsync(UserMessage userMessage, string[] args)
        {
            if (userMessage.Attachments.Any())
            {
                await UploadFile(userMessage);

                return;
            }

            var payload = new CountClickPayload(Guid.NewGuid()); // фейковый id, т.к. id сообщения не известен до отправки самого сообщения

            var buttons = new MessageButtonsGrid();

            buttons.AddRow().AddSilentButton("Edit message", "edit", payload);
            buttons.AddRow().AddSilentButton("Simple button handler", "nullArgs");
            buttons.AddRow().AddButton("Button as message");
            buttons.AddRow().AddSilentButton("Get my file!", "fileRequest");

            var syncId = await MessageSender.ReplyTextMessageAsync(userMessage, $"You said: {userMessage.Command.Body}", buttons);

            payload.SyncId = syncId;

            buttons.Rows.First().Buttons.First().ChangePayload(payload);

            await MessageSender.EditMessageAsync(userMessage, syncId, $"You said: {userMessage.Command.Body}", buttons);
        }
        private async Task Edit(UserMessage userMessage, CountClickPayload payload)
        {
            payload.Increment();
            var buttons = new MessageButtonsGrid();
            var row     = buttons.AddRow();

            row.AddSilentButton("Increment", "edit", payload);
            await MessageSender.EditMessageAsync(userMessage, payload.SyncId, $"Button pressed {payload.Count} times", buttons);
        }