From 0a7e3d4b4949f36ac503dca8815c7c31c72958ee Mon Sep 17 00:00:00 2001 From: Dmitri Shimanski Date: Fri, 28 Mar 2025 16:35:38 +0300 Subject: [PATCH] Fix warnings and change versions of dependencies for better compatability --- .../Services/TelegramHostedService.cs | 63 ++++++++++--------- Telegram.Net/Telegram.Net.csproj | 10 +-- 2 files changed, 40 insertions(+), 33 deletions(-) diff --git a/Telegram.Net/Services/TelegramHostedService.cs b/Telegram.Net/Services/TelegramHostedService.cs index ee088a9..c38ffc7 100644 --- a/Telegram.Net/Services/TelegramHostedService.cs +++ b/Telegram.Net/Services/TelegramHostedService.cs @@ -1,6 +1,5 @@ using System.Diagnostics.CodeAnalysis; using System.Reflection; -using System.Runtime.InteropServices.JavaScript; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; @@ -15,31 +14,32 @@ using static System.Reflection.BindingFlags; namespace Telegram.Net.Services; +[SuppressMessage("ReSharper", "ReturnValueOfPureMethodIsNotUsed")] public class TelegramHostedService : IHostedService { - private IServiceCollection isc { get; } - internal TelegramBotClient Client { get; set; } - private ITelegramBotConfig Config { get; } - internal Dictionary> CommandHandler { get; set; } = new(); - internal List> EditedMessageHandler { get; set; } = new(); - internal Dictionary> CallbackQueryHandler { get; set; } = new(); - internal Dictionary> InlineHandler { get; set; } = new(); + private IServiceCollection ServiceCollection { get; } = null!; + internal TelegramBotClient Client { get; set; } = null!; + private ITelegramBotConfig Config { get; } = null!; + internal Dictionary?> CommandHandler { get; set; } = new(); + internal List?> EditedMessageHandler { get; set; } = new(); + internal Dictionary?> CallbackQueryHandler { get; set; } = new(); + internal Dictionary?> InlineHandler { get; set; } = new(); internal Func? PreCheckoutHandler { get; set; } - internal List> DefaultUpdateHandler { get; set; } = new(); - internal static ILogger _logger; + internal List?> DefaultUpdateHandler { get; set; } = new(); + internal static ILogger Logger = null!; - public TelegramHostedService(ITelegramBotConfig config, IServiceCollection isc, ILogger logger) + public TelegramHostedService(ITelegramBotConfig config, IServiceCollection serviceCollection, ILogger logger) { try { - _logger = logger; + Logger = logger; Client = new TelegramBotClient(config.Token); Config = config; - this.isc = isc; + this.ServiceCollection = serviceCollection; } catch (Exception ex) { - _logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception when creating TelegramHostedService: "); + Logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception when creating TelegramHostedService: "); } } internal static bool IsValidHandlerMethod(MethodInfo method, Type parameterType) @@ -55,12 +55,12 @@ public class TelegramHostedService : IHostedService } catch (Exception ex) { - _logger.LogError(ex, "Catched exception in parsing and checking params."); + Logger.LogError(ex, "Catched exception in parsing and checking params."); return false; } } - internal static Func CreateDelegate(MethodInfo method) + internal static Func? CreateDelegate(MethodInfo method) { try { @@ -70,7 +70,7 @@ public class TelegramHostedService : IHostedService } catch (Exception ex) { - _logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception in CreateDelegate function: "); + Logger.Log(LogLevel.Critical, new EventId(), ex, "Catched exception in CreateDelegate function: "); return null; } @@ -106,10 +106,10 @@ public class TelegramHostedService : IHostedService if (methods.Count == 0) { - _logger.LogWarning("No methods found with required attributes"); + Logger.LogWarning("No methods found with required attributes"); } - var isp = isc.BuildServiceProvider(); + var isp = ServiceCollection.BuildServiceProvider(); foreach (var method in methods) { var declaringType = method.DeclaringType!; @@ -156,7 +156,7 @@ public class TelegramHostedService : IHostedService } catch (Exception ex) { - _logger.Log(LogLevel.Critical, new EventId(), ex, "Catched new exception when added methods: "); + Logger.Log(LogLevel.Critical, new EventId(), ex, "Catched new exception when added methods: "); } }, cancellationToken); } @@ -171,25 +171,26 @@ public class TelegramHostedService : IHostedService case { Message: { } message }: CommandHandler.Where(k => message.Text!.StartsWith(k.Key)).Select(async k => { - await k.Value(client, message, ctx); + await k.Value!(client, message, ctx); return k; }); break; case { EditedMessage: { } message }: - EditedMessageHandler.ForEach(async k => await k(client, message, ctx)); + // ReSharper disable once AsyncVoidLambda + EditedMessageHandler.ForEach(async k => await k!(client, message, ctx)); break; case { CallbackQuery: { } callbackQuery }: CallbackQueryHandler.Where(k => callbackQuery.Data!.StartsWith(k.Key)) .Select(async k => { - await k.Value(client, callbackQuery, ctx); + await k.Value!(client, callbackQuery, ctx); return k; }); break; case { InlineQuery: { } inlineQuery }: InlineHandler.Where(k => inlineQuery.Id.StartsWith(k.Key)).Select(async k => { - await k.Value(client, inlineQuery, ctx); + await k.Value!(client, inlineQuery, ctx); return k; }); break; @@ -197,13 +198,17 @@ public class TelegramHostedService : IHostedService if (PreCheckoutHandler != null) await PreCheckoutHandler(client, preCheckoutQuery, ctx); break; default: - DefaultUpdateHandler.ForEach(async k => await k(client, update, ctx)); + // ReSharper disable once AsyncVoidLambda + DefaultUpdateHandler.ForEach(async k => await k!(client, update, ctx)); break; } } catch (Exception ex) { - _logger.Log(LogLevel.Error, new EventId(), ex, "Catched exception in UpdateHandler: "); + if (ex is KeyNotFoundException) + Logger.Log(LogLevel.Warning, new EventId(), ex, "Key not found: "); + else + Logger.Log(LogLevel.Error, new EventId(), ex, "Caught exception in UpdateHandler: "); } } @@ -220,7 +225,7 @@ public class TelegramHostedService : IHostedService UpdateHandler, Config.errorHandler ?? ((_, ex, _) => { - _logger.LogError(ex, "Catched error in telegram bot working: "); + Logger.LogError(ex, "Catched error in telegram bot working: "); return Task.CompletedTask; }), Config.ReceiverOptions, @@ -228,7 +233,7 @@ public class TelegramHostedService : IHostedService } catch (Exception ex) { - _logger.Log(LogLevel.Critical, new EventId(), ex, "Failed to start. Catched exception: "); + Logger.Log(LogLevel.Critical, new EventId(), ex, "Failed to start. Catched exception: "); } } @@ -240,7 +245,7 @@ public class TelegramHostedService : IHostedService } catch (Exception ex) { - _logger.LogCritical(ex, "Failed to stop. Exception: "); + Logger.LogCritical(ex, "Failed to stop. Exception: "); } } } \ No newline at end of file diff --git a/Telegram.Net/Telegram.Net.csproj b/Telegram.Net/Telegram.Net.csproj index d7ced37..a00f30b 100644 --- a/Telegram.Net/Telegram.Net.csproj +++ b/Telegram.Net/Telegram.Net.csproj @@ -2,10 +2,10 @@ true - net7.0 + net6.0;net7.0 enable enable - 1.0.2 + 1.0.3 yawaflua yawaflua.Telegram.Net Telegram.Bots extender pack, what provides to user attributes, which can used with services @@ -19,8 +19,10 @@ - - + + + +