public async Task HandleAsync(IUpdateContext context, UpdateDelegate next, CancellationToken cancellationToken) { Message msg = context.Update.Message; _chatProcessor = new ChatProcessor(context); _settingsService = new SettingsService(msg); _elasticSecurityService = new ElasticSecurityService(context.Update.Message); ConsoleHelper.WriteLine("New Chat Members..."); var newMembers = msg.NewChatMembers; var isBootAdded = await newMembers.IsBotAdded(); if (isBootAdded) { var botName = Bot.GlobalConfiguration["Engines:ProductName"]; var sendText = $"Hai, perkenalkan saya {botName}" + $"\nFYI saya di bangun ulang menggunakan .NET Core, tepatnya ASP .NET Core." + $"\n\nAku adalah bot pendebug dan grup manajemen yang di lengkapi dengan alat keamanan. " + $"Agar saya berfungsi penuh, jadikan saya admin dengan level standard. " + $"\n\nAku akan menerapkan konfigurasi standard jika aku baru pertama kali masuk kesini. " + $"\n\nUntuk melihat daftar perintah bisa ketikkan /help"; await _chatProcessor.SendAsync(sendText); await _settingsService.SaveSettingsAsync(new Dictionary <string, object>() { { "chat_id", msg.Chat.Id }, { "chat_title", msg.Chat.Title } }); if (newMembers.Length == 1) { return; } } var parsedNewMember = await ParseMemberCategory(newMembers); var allNewMember = parsedNewMember.AllNewMember; var allNoUsername = parsedNewMember.AllNoUsername; var allNewBot = parsedNewMember.AllNewBot; if (allNewMember.Length > 0) { var chatSettings = await _settingsService.GetSettingByGroup(); var chatTitle = msg.Chat.Title; var memberCount = await _chatProcessor.GetMemberCount(); var newMemberCount = newMembers.Length; ConsoleHelper.WriteLine("Preparing send Welcome.."); if (chatSettings.WelcomeMessage == "") { chatSettings.WelcomeMessage = $"Hai {allNewMember}" + $"\nSelamat datang di kontrakan {chatTitle}" + $"\nKamu adalah anggota ke-{memberCount}"; } var sendText = chatSettings.WelcomeMessage.ResolveVariable(new { allNewMember, allNoUsername, allNewBot, newMemberCount, chatTitle, memberCount }); IReplyMarkup keyboard = null; if (chatSettings.WelcomeButton != "") { keyboard = chatSettings.WelcomeButton.ToReplyMarkup(2); } if (chatSettings.WelcomeMediaType != "") { await _chatProcessor.SendMediaAsync( chatSettings.WelcomeMedia, chatSettings.WelcomeMediaType, sendText, keyboard); } else { await _chatProcessor.SendAsync(sendText, keyboard); } await _settingsService.SaveSettingsAsync(new Dictionary <string, object>() { { "chat_id", msg.Chat.Id }, { "chat_title", msg.Chat.Title }, { "members_count", memberCount } }); } else { ConsoleHelper.WriteLine("Welcome Message ignored because User is Global Banned."); } }