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);
     }
 }