protected override async Task Handle(SearchTextCommand request, CancellationToken cancellationToken) { var chatId = request.ChatId; var searchText = request.SearchText; var skip = request.Skip; var count = 50; var messages = await messageRepository.SearchMessages(searchText.ToLower(), skip, count); var replyMessages = messages.GenerateReplyMessages(); if (!replyMessages.Any()) { await telegramBotClient.SendTextMessageAsync( chatId, "No messages were found.", cancellationToken : cancellationToken ); } for (var i = 0; i < replyMessages.Count; i++) { var replyMessage = replyMessages[i]; await telegramBotClient.SendTextMessageAsync( chatId, replyMessage, parseMode : ParseMode.Html, disableWebPagePreview : true, replyMarkup : i == replyMessages.Count - 1 ?InlineUtils.GenerateNavigationMarkup(BotCommands.SearchText, searchText, count, skip, messages.Count) : null, cancellationToken : cancellationToken ); } }
protected override async Task Handle(DailyNewSubscribersCountCommand request, CancellationToken cancellationToken) { var chatId = request.ChatId; var skip = request.Skip; var count = 10; var dateFormat = "MMMM dd"; var from = DateTime.UtcNow.AddDays(-1); var to = DateTime.UtcNow; var channelSubs = await subscriptionRepository.GetSubscribersCount(skip, count, from); var fromString = from.ConvertToMyTimezone().ToString(dateFormat); var toString = to.ConvertToMyTimezone().ToString(dateFormat); var messageHeader = $"Daily New Subscriptions count {fromString} - {toString}"; var messageBody = string.Join("\r\n", channelSubs.Select(_ => $"{_.SubsCount} subs on <b>{_.Channel}</b>")); await telegramBotClient.SendTextMessageAsync( chatId : chatId, text : $"{messageHeader}\r\n{messageBody}", parseMode : ParseMode.Html, replyMarkup : InlineUtils.GenerateNavigationMarkup(BotCommands.DailyNewSubs, string.Empty, count, skip, channelSubs.Count()), cancellationToken : cancellationToken ); }
protected override async Task Handle(UserMessagesCommand request, CancellationToken cancellationToken) { var chatId = request.ChatId; var userName = request.Username; var skip = request.Skip; var userIds = await userRepository.GetUserIds(userName); if (!userIds.Any()) { await telegramBotClient.SendTextMessageAsync( chatId : chatId, text : $"User '{userName}' not found.", parseMode : ParseMode.Html, cancellationToken : cancellationToken ); return; } var count = 50; var messages = await messageRepository.GetMessages(userIds.First().Value, skip, count); var replyMessages = messages.GenerateReplyMessages(); if (!replyMessages.Any()) { await telegramBotClient.SendTextMessageAsync( chatId, "No messages were found.", cancellationToken : cancellationToken ); } for (var i = 0; i < replyMessages.Count; i++) { var replyMessage = replyMessages[i]; await telegramBotClient.SendTextMessageAsync( chatId, replyMessage, parseMode : ParseMode.Html, disableWebPagePreview : true, replyMarkup : i == replyMessages.Count - 1 ?InlineUtils.GenerateNavigationMarkup(BotCommands.UserMessages, userName, count, skip, messages.Count) : null, cancellationToken : cancellationToken ); } }
protected override async Task Handle(UserMessagesDigestCommand request, CancellationToken cancellationToken) { var userId = request.TwitchUserId ?? (await userRepository.GetUserIds(request.UserName)).First().Value; var count = 50; var messages = await messageRepository.GetMessages(userId, DateTime.UtcNow.AddHours(-12), count); var replyMessages = messages.GenerateReplyMessages(); for (var i = 0; i < replyMessages.Count; i++) { var replyMessage = replyMessages[i]; await telegramBotClient.SendTextMessageAsync( request.ChatId, replyMessage, parseMode : ParseMode.Html, disableWebPagePreview : true, replyMarkup : i == replyMessages.Count - 1 ?InlineUtils.GenerateNavigationMarkup(BotCommands.UserMessages, request.UserName, count, 0, messages.Count) : null, cancellationToken : cancellationToken ); } }