private async Task HandleOptions(string text, Message message, User userInfo) { var isAdmin = userInfo.IsAdmin; if (isAdmin) { AdminOptions(text, message); } switch (text) { case "start": case "/start": await bot.Send(message, "Enter number of cups saved"); break; case "users" when isAdmin: case "/users" when isAdmin: { foreach (var user in Users) { await bot.SendTextMessageAsync(message.Chat.Id, $"Authenticate: {user.Value}", replyMarkup : Keyboards.AuthenticationKb(user.Key)); return; } await bot.Send(message, "No users to authenticate"); break; } case "stats": case "/stats": await bot.Send(message, Helpers.TotalSavedText(_savedCups)); break; case "stats_extended": case "/stats_extended": await bot.SendStatsExtended(message, _registrationRepository, _savedCups); break; case "user_stats": case "/user_stats": await bot.SendUserStats(message, userInfo, _registrationRepository, _savedCups); break; case "undo": case "/undo": await bot.SendTextMessageAsync(message.Chat.Id, "Cups", replyMarkup : Keyboards.Undo); break; default: await bot.Send(message, "/start - Start saving\n" + "/undo - Enter number of cups to undo\n" + "/stats - Get basic statistics\n" + "/stats_extended - Get extended statistics!\n" + "/user_stats - See your own stats\n" + (isAdmin ? "\n/users - show users to authenticate" : null)); break; } }