internal static IEnumerable <string> FormatFractionInfo(IFractionInfo fractionInfo) { foreach (string fractionInfoItem in fractionInfo.AllInfo) { yield return(fractionInfoItem); } }
public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken) { int count = FractionsInfoWiki.Available.Count; if (count <= 0) { return; } // Get random fraction info int randomFractionInfo = Randomizer.Instance.Next(0, count); IFractionInfo fractionInfo = FractionsInfoWiki.Available[randomFractionInfo]; long chatId; UpdateType updateType = context?.Update?.Type ?? UpdateType.Unknown; if (updateType == UpdateType.CallbackQuery) { chatId = context.Update.CallbackQuery.Message.Chat.Id; await context.Bot.Client.EditMessageTextAsync( chatId : chatId, messageId : context.Update.CallbackQuery.Message.MessageId, text : fractionInfo.Topic, replyMarkup : InlineKeyboardMarkup.Empty() ); } else { chatId = context.Update.Message.Chat.Id; await context.Bot.Client.SendTextMessageAsync( chatId : chatId, text : fractionInfo.Topic ); } foreach (string fractionInfoItem in FractionsInfoHandler.FormatFractionInfo(fractionInfo)) { await context.Bot.Client.SendTextMessageAsync( chatId : chatId, text : fractionInfoItem ); } }