/// <summary> /// This method is used to promote or demote given userId on message target /// </summary> /// <param name="userId"></param> /// <param name="promote"></param> /// <returns></returns> protected async Task <TelegramResult> PromoteMember( long userId, bool promote ) { var result = new TelegramResult(); try { await Bot.PromoteChatMemberAsync( chatId : ChatId, userId : userId, isAnonymous : promote, canManageChat : promote, canChangeInfo : promote, canPostMessages : promote, canEditMessages : promote, canDeleteMessages : promote, canManageVideoChats : promote ); result.IsSuccess = true; } catch (Exception ex) { result.Exception = ex; result.IsSuccess = false; } return(result); }
public async Task <TelegramResult> IsMustDelete(string words) { var op = Operation.Begin("Check Message"); var isShould = false; var telegramResult = new TelegramResult(); if (words == null) { Log.Information("Scan message skipped because Words is null"); return(telegramResult); } var listWords = await GetWordsList(); var partedWord = words.Split( new[] { '\n', '\r', ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries ) .Distinct() .ToList(); var skipWords = new[] { "ping", "telegram" }; skipWords.ForEach ( (word1) => { partedWord.RemoveAll ( word2 => word2.Length <= 2 || word2.CleanExceptAlphaNumeric().ToLowerCase() == word1 ); } ); Log.Debug("Message Word Scan Lists: {V}", partedWord); foreach (var word in partedWord) { var forCompare = word; forCompare = forCompare.ToLowerCase().CleanExceptAlphaNumeric(); foreach (var wordFilter in listWords) { var isGlobal = wordFilter.IsGlobal; var forFilter = wordFilter.Word.ToLowerCase(); if (forFilter.EndsWith("*", StringComparison.CurrentCultureIgnoreCase)) { forFilter = forFilter.CleanExceptAlphaNumeric(); isShould = forCompare.Contains(forFilter); Log.Verbose( "Message compare '{ForCompare}' LIKE '{ForFilter}' ? {IsShould}. Global: {IsGlobal}", forCompare, forFilter, isShould, isGlobal ); } else { forFilter = wordFilter.Word.ToLowerCase().CleanExceptAlphaNumeric(); if (forCompare == forFilter) { isShould = true; } Log.Verbose( "Message compare '{ForCompare}' == '{ForFilter}' ? {IsShould}, Global: {IsGlobal}", forCompare, forFilter, isShould, isGlobal ); } if (!isShould) { continue; } var htmlMessage = HtmlMessage.Empty .Bold("Filter: ").CodeBr(wordFilter.Word) .Bold("Comparer: ").CodeBr(forCompare) .Bold("Kata: ").CodeBr(word); telegramResult.Notes = htmlMessage.ToString(); telegramResult.IsSuccess = true; Log.Debug("Should break L2 loop!"); break; } if (!isShould) { continue; } Log.Debug("Should break L1 Loop!"); break; } op.Complete(); return(telegramResult); }