[store] Refactor store command handler to use LINQ.

This commit is contained in:
West14
2022-02-25 20:47:24 +02:00
parent fb1bfd20e5
commit c1008e1040
+9 -26
View File
@@ -36,32 +36,15 @@ public class Store : BotEventHandler
await Bot.SendTextMessageAsync(Chat.Id, "Reputation is unavailable.");
return;
}
var rowList = new List<List<InlineKeyboardButton>>();
var counter = 0;
var list = new List<InlineKeyboardButton>();
foreach (var item in _provider.GetServices<IRandomMediaService>()
.OrderBy(s => s.StoreItem.Order))
{
var btn = item.StoreItem.ToButton(From.Id);
if ((counter & 1) == 0) // 0 - even, 1 - odd
{
list = new List<InlineKeyboardButton>
{
btn
};
}
else
{
list.Add(btn);
rowList.Add(list);
}
counter++;
}
await Bot.SendTextMessageAsync(Chat.Id, "Чего пожелаете?", replyMarkup: new InlineKeyboardMarkup(rowList));
await Bot.SendTextMessageAsync(Chat.Id, "Чего пожелаете?", replyMarkup: new InlineKeyboardMarkup(
_provider.GetServices<IRandomMediaService>()
.OrderBy(x => x.StoreItem.Order)
.Select(x => x.StoreItem.ToButton(From.Id))
.Chunk(2)
.ToList()
)
);
}
[Update(InChat.Public, UpdateFlag.CallbackQuery)]