< Summary

Information
Class: TeleFlow.Telegram.Internal.Handlers.TelegramHandlerDescriptor
Assembly: TeleFlow.Framework
File(s): /_/src/TeleFlow.Framework/Internal/Handlers/TelegramHandlerDescriptor.cs
Line coverage
56%
Covered lines: 35
Uncovered lines: 27
Coverable lines: 62
Total lines: 181
Line coverage: 56.4%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
.ctor(...)100%210%
.ctor(...)100%11100%
.ctor(...)100%210%
.ctor(...)100%11100%
get_Kind()100%11100%
get_Command()100%11100%
get_TextFilters()100%210%
get_CallbackPayloadType()100%11100%

File(s)

/_/src/TeleFlow.Framework/Internal/Handlers/TelegramHandlerDescriptor.cs

#LineLine coverage
 1using System.Reflection;
 2
 3namespace TeleFlow.Telegram.Internal.Handlers;
 4
 5internal delegate ValueTask TelegramHandlerGeneratedInvoker(
 6    IServiceProvider services,
 7    object?[] arguments,
 8    CancellationToken cancellationToken);
 9
 10internal sealed class TelegramHandlerDescriptor
 11{
 12    public TelegramHandlerDescriptor(
 13        Type handlerType,
 14        MethodInfo method,
 15        TelegramRouteDescriptor route,
 16        int registrationOrder,
 17        string? moduleName,
 18        IReadOnlyList<string> states,
 19        IReadOnlyList<TelegramHandlerParameterDescriptor> parameters,
 20        string? sceneName = null,
 21        TelegramAutoAnswerCallbackDescriptor? autoAnswerCallback = null)
 32022        : this(
 32023            handlerType,
 32024            method,
 32025            method.Name,
 32026            generatedInvoker: null,
 32027            route,
 32028            registrationOrder,
 32029            moduleName,
 32030            sceneName,
 32031            autoAnswerCallback,
 32032            states,
 32033            parameters)
 34    {
 32035    }
 36
 37    public TelegramHandlerDescriptor(
 38        Type handlerType,
 39        MethodInfo method,
 40        TelegramHandlerKind kind,
 41        int registrationOrder,
 42        string? moduleName,
 43        string? command,
 44        IReadOnlyList<TelegramTextFilter> textFilters,
 45        IReadOnlyList<string> states,
 46        Type? callbackPayloadType,
 47        IReadOnlyList<TelegramHandlerParameterDescriptor> parameters,
 48        string? sceneName = null,
 49        TelegramAutoAnswerCallbackDescriptor? autoAnswerCallback = null)
 050        : this(
 051            handlerType,
 052            method,
 053            method.Name,
 054            generatedInvoker: null,
 055            new TelegramRouteDescriptor(kind, command, textFilters, callbackPayloadType),
 056            registrationOrder,
 057            moduleName,
 058            sceneName,
 059            autoAnswerCallback,
 060            states,
 061            parameters)
 62    {
 063    }
 64
 65    public TelegramHandlerDescriptor(
 66        Type handlerType,
 67        string methodName,
 68        TelegramHandlerGeneratedInvoker generatedInvoker,
 69        TelegramRouteDescriptor route,
 70        int registrationOrder,
 71        string? moduleName,
 72        IReadOnlyList<string> states,
 73        IReadOnlyList<TelegramHandlerParameterDescriptor> parameters,
 74        string? sceneName = null,
 75        TelegramAutoAnswerCallbackDescriptor? autoAnswerCallback = null)
 83276        : this(
 83277            handlerType,
 83278            method: null,
 83279            methodName,
 83280            generatedInvoker,
 83281            route,
 83282            registrationOrder,
 83283            moduleName,
 83284            sceneName,
 83285            autoAnswerCallback,
 83286            states,
 83287            parameters)
 88    {
 83289    }
 90
 91    public TelegramHandlerDescriptor(
 92        Type handlerType,
 93        string methodName,
 94        TelegramHandlerGeneratedInvoker generatedInvoker,
 95        TelegramHandlerKind kind,
 96        int registrationOrder,
 97        string? moduleName,
 98        string? command,
 99        IReadOnlyList<TelegramTextFilter> textFilters,
 100        IReadOnlyList<string> states,
 101        Type? callbackPayloadType,
 102        IReadOnlyList<TelegramHandlerParameterDescriptor> parameters,
 103        string? sceneName = null,
 104        TelegramAutoAnswerCallbackDescriptor? autoAnswerCallback = null)
 0105        : this(
 0106            handlerType,
 0107            method: null,
 0108            methodName,
 0109            generatedInvoker,
 0110            new TelegramRouteDescriptor(kind, command, textFilters, callbackPayloadType),
 0111            registrationOrder,
 0112            moduleName,
 0113            sceneName,
 0114            autoAnswerCallback,
 0115            states,
 0116            parameters)
 117    {
 0118    }
 119
 120    private TelegramHandlerDescriptor(
 121        Type handlerType,
 122        MethodInfo? method,
 123        string methodName,
 124        TelegramHandlerGeneratedInvoker? generatedInvoker,
 125        TelegramRouteDescriptor route,
 126        int registrationOrder,
 127        string? moduleName,
 128        string? sceneName,
 129        TelegramAutoAnswerCallbackDescriptor? autoAnswerCallback,
 130        IReadOnlyList<string> states,
 131        IReadOnlyList<TelegramHandlerParameterDescriptor> parameters)
 132    {
 1152133        ArgumentNullException.ThrowIfNull(handlerType);
 1152134        ArgumentException.ThrowIfNullOrWhiteSpace(methodName);
 1152135        ArgumentNullException.ThrowIfNull(route);
 1152136        ArgumentNullException.ThrowIfNull(states);
 1152137        ArgumentNullException.ThrowIfNull(parameters);
 138
 139        HandlerType = handlerType;
 140        Method = method;
 141        MethodName = methodName;
 142        GeneratedInvoker = generatedInvoker;
 143        RegistrationOrder = registrationOrder;
 144        ModuleName = moduleName;
 145        SceneName = sceneName;
 146        AutoAnswerCallback = autoAnswerCallback;
 147        Route = route;
 148        States = states;
 149        Parameters = parameters;
 1152150    }
 151
 152    public Type HandlerType { get; }
 153
 154    public MethodInfo? Method { get; }
 155
 156    public string MethodName { get; }
 157
 158    public TelegramHandlerGeneratedInvoker? GeneratedInvoker { get; }
 159
 4379160    public TelegramHandlerKind Kind => Route.Kind;
 161
 162    public int RegistrationOrder { get; }
 163
 164    public string? ModuleName { get; }
 165
 166    public string? SceneName { get; }
 167
 168    public TelegramAutoAnswerCallbackDescriptor? AutoAnswerCallback { get; }
 169
 170    public TelegramRouteDescriptor Route { get; }
 171
 1116172    public string? Command => Route.Command;
 173
 0174    public IReadOnlyList<TelegramTextFilter> TextFilters => Route.TextFilters;
 175
 176    public IReadOnlyList<string> States { get; }
 177
 561178    public Type? CallbackPayloadType => Route.CallbackPayloadType;
 179
 180    public IReadOnlyList<TelegramHandlerParameterDescriptor> Parameters { get; }
 181}

Methods/Properties

.ctor(System.Type,System.Reflection.MethodInfo,TeleFlow.Telegram.Internal.Handlers.TelegramRouteDescriptor,System.Int32,System.String,System.Collections.Generic.IReadOnlyList`1<System.String>,System.Collections.Generic.IReadOnlyList`1<TeleFlow.Telegram.Internal.Handlers.TelegramHandlerParameterDescriptor>,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramAutoAnswerCallbackDescriptor)
.ctor(System.Type,System.Reflection.MethodInfo,TeleFlow.Telegram.Internal.Handlers.TelegramHandlerKind,System.Int32,System.String,System.String,System.Collections.Generic.IReadOnlyList`1<TeleFlow.Telegram.Internal.Handlers.TelegramTextFilter>,System.Collections.Generic.IReadOnlyList`1<System.String>,System.Type,System.Collections.Generic.IReadOnlyList`1<TeleFlow.Telegram.Internal.Handlers.TelegramHandlerParameterDescriptor>,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramAutoAnswerCallbackDescriptor)
.ctor(System.Type,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramHandlerGeneratedInvoker,TeleFlow.Telegram.Internal.Handlers.TelegramRouteDescriptor,System.Int32,System.String,System.Collections.Generic.IReadOnlyList`1<System.String>,System.Collections.Generic.IReadOnlyList`1<TeleFlow.Telegram.Internal.Handlers.TelegramHandlerParameterDescriptor>,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramAutoAnswerCallbackDescriptor)
.ctor(System.Type,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramHandlerGeneratedInvoker,TeleFlow.Telegram.Internal.Handlers.TelegramHandlerKind,System.Int32,System.String,System.String,System.Collections.Generic.IReadOnlyList`1<TeleFlow.Telegram.Internal.Handlers.TelegramTextFilter>,System.Collections.Generic.IReadOnlyList`1<System.String>,System.Type,System.Collections.Generic.IReadOnlyList`1<TeleFlow.Telegram.Internal.Handlers.TelegramHandlerParameterDescriptor>,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramAutoAnswerCallbackDescriptor)
.ctor(System.Type,System.Reflection.MethodInfo,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramHandlerGeneratedInvoker,TeleFlow.Telegram.Internal.Handlers.TelegramRouteDescriptor,System.Int32,System.String,System.String,TeleFlow.Telegram.Internal.Handlers.TelegramAutoAnswerCallbackDescriptor,System.Collections.Generic.IReadOnlyList`1<System.String>,System.Collections.Generic.IReadOnlyList`1<TeleFlow.Telegram.Internal.Handlers.TelegramHandlerParameterDescriptor>)
get_Kind()
get_Command()
get_TextFilters()
get_CallbackPayloadType()