public override sealed void ProcessCommand(TelegramCommand command) { if (command.CommandType == TelegramCommandType.ButtonPressed) { var c = command as TelegramButtonPressedCommand; if (c.CallbackData == MainButtonCommand) { Done(CheckedOptions); return; } ActiveMessage = new TelegramTextMessageWithKeyboardEdited(LastMessageId, ActiveMessage, clearKeyboard: true); if (CheckedOptions.Contains(c.CallbackData)) { CheckedOptions.Remove(c.CallbackData); } else { CheckedOptions.Add(c.CallbackData); } foreach (var pair in ButtonList) { if (CheckedOptions.Contains(pair.Value)) { ActiveMessage.AddCallbackButton(GetCheckedString(pair.Key), pair.Value); } else { ActiveMessage.AddCallbackButton(GetUncheckedString(pair.Key), pair.Value); } } GenerateMainButtonCommand(); ActiveMessage.AddCallbackButton(MainButton, MainButtonCommand, true); PostMessage(ActiveMessage); } }