public async Task <MessageResponseDto> Execute(string payload) { var response = new MessageResponseDto(); var chatId = payload.ToInt64().FixChatId(); var rules = await _rulesService.GetRulesAsync(chatId); var latestRule = rules.LastOrDefault(); var ruleText = latestRule?.RuleText; if (latestRule == null) { return(response); } var chat = await _chatService.GetChatAsync(chatId); var chatNameLink = chat.GetChatNameLink(); var lastUpdate = latestRule.UpdatedAt; var ruleTextWithTitle = $"📜 Rules di <b>{chatNameLink}</b>\n" + $"\n{ruleText}" + $"\n\n<b>Diperbarui: </b> {lastUpdate.ToDetailDateTimeString()}"; response.MessageText = ruleTextWithTitle; response.DisableWebPreview = true; response.ReplyToMessageId = 0; return(response); }
public override async Task HandleAsync( IUpdateContext context, UpdateDelegate next, string[] args ) { await _telegramService.AddUpdateContext(context); var deleteAt = DateTime.UtcNow.AddMinutes(5); var chatId = _telegramService.ChatId; var reducedChatId = _telegramService.ReducedChatId; if (_telegramService.IsPrivateChat) { Log.Debug("Rules only for Group"); return; } var rules = await _rulesService.GetRulesAsync(chatId); var rulesText = rules.LastOrDefault()?.RuleText; var startUrl = await _telegramService.GetUrlStart($"start=rules_{reducedChatId}"); var keyboard = new InlineKeyboardMarkup(InlineKeyboardButton.WithUrl("Klik disini", startUrl)); var sendText = rulesText ?? "Sepertinya rules belum di tentukan untuk grup ini, namun bukan berarti Grup tanpa aturan!"; _telegramService.SaveSenderMessageToHistory(MessageFlag.Rules, deleteAt); await _telegramService.SendTextMessageAsync( "Klik tombol dibawah ini untuk menadapatkan Rules", replyMarkup : keyboard, replyToMsgId : 0, disableWebPreview : true ); _telegramService.SaveSentMessageToHistory(MessageFlag.Rules, deleteAt); }