public static InlineKeyboardMarkup CreateDigitInlineKeyboardMarkup(string command)
        {
            FillCallbackStringData fillCallbackStringData = data => new InlineKeyboardCallback(command, data).ToString();
            FillCallbackButtonData fillCallbackButtonData = data => new InlineKeyboardCallback(command, data).ToString();
            var buttons = new List <InlineKeyboardButton[]>();

            for (var row = 0; row < 3; row++)
            {
                var rowButtons = new List <InlineKeyboardButton>();
                for (var col = 0; col < 3; col++)
                {
                    var index = row * 3 + col + 1;
                    rowButtons.Add(new InlineKeyboardButton(index.ToString(), fillCallbackStringData(index.ToString())));
                }
                buttons.Add(rowButtons.ToArray());
            }
            buttons.Add(new []
            {
                new InlineKeyboardButton("0", fillCallbackStringData("0")),
                new InlineKeyboardButton(".", fillCallbackButtonData(Button.Dot)),
                new InlineKeyboardButton("\u2190", fillCallbackButtonData(Button.Back))
            });
            buttons.Add(new []
            {
                new InlineKeyboardButton("OK", fillCallbackButtonData(Button.Ok))
            });
            return(new InlineKeyboardMarkup(buttons.ToArray()));
        }
        public static InlineKeyboardMarkup CreateUserSelectionKeyboardMarkup(string command, IList <User> users, ISet <int> selectedUser)
        {
            FillCallbackStringData fillCallbackStringData = data => new InlineKeyboardCallback(command, data).ToString();
            FillCallbackButtonData fillCallbackButtonData = data => new InlineKeyboardCallback(command, data).ToString();
            UserNameBuilder        userNameBuilder        = (user) =>
            {
                var userName = "";
                if (selectedUser.Contains(user.Id))
                {
                    userName += "\u2705";
                }
                userName += user.FirstName + " " + user.LastName;
                return(userName);
            };
            var buttons   = new List <InlineKeyboardButton[]>();
            var rowButton = new List <InlineKeyboardButton>();

            foreach (var user in users)
            {
                rowButton.Add(new InlineKeyboardButton(userNameBuilder(user), fillCallbackStringData(user.Id.ToString())));
                if (rowButton.Count != 3)
                {
                    continue;
                }
                buttons.Add(rowButton.ToArray());
                rowButton = new List <InlineKeyboardButton>();
            }
            if (rowButton.Count > 0)
            {
                buttons.Add(rowButton.ToArray());
            }
            buttons.Add(new []
            {
                new InlineKeyboardButton("OK", fillCallbackButtonData(Button.Ok))
            });
            return(new InlineKeyboardMarkup(buttons.ToArray()));
        }