[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."); await Bot.SendTextMessageAsync(Chat.Id, "Reputation is unavailable.");
return; return;
} }
var rowList = new List<List<InlineKeyboardButton>>(); await Bot.SendTextMessageAsync(Chat.Id, "Чего пожелаете?", replyMarkup: new InlineKeyboardMarkup(
_provider.GetServices<IRandomMediaService>()
var counter = 0; .OrderBy(x => x.StoreItem.Order)
var list = new List<InlineKeyboardButton>(); .Select(x => x.StoreItem.ToButton(From.Id))
foreach (var item in _provider.GetServices<IRandomMediaService>() .Chunk(2)
.OrderBy(s => s.StoreItem.Order)) .ToList()
{ )
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));
} }
[Update(InChat.Public, UpdateFlag.CallbackQuery)] [Update(InChat.Public, UpdateFlag.CallbackQuery)]