< Summary

Information
Class: TeleFlow.Telegram.Internal.Handlers.TelegramRoleFilterIdentityResolver
Assembly: TeleFlow.Framework
File(s): /_/src/TeleFlow.Framework/Internal/Handlers/TelegramRoleFilterIdentityResolver.cs
Line coverage
81%
Covered lines: 18
Uncovered lines: 4
Coverable lines: 22
Total lines: 48
Line coverage: 81.8%
Branch coverage
78%
Covered branches: 11
Total branches: 14
Branch coverage: 78.5%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
TryResolve(...)78.57%151481.81%

File(s)

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

#LineLine coverage
 1namespace TeleFlow.Telegram.Internal.Handlers;
 2
 3internal static class TelegramRoleFilterIdentityResolver
 4{
 5    public static bool TryResolve(
 6        TelegramUpdateContext context,
 7        out TelegramRoleFilterIdentity identity)
 8    {
 9        switch (context)
 10        {
 11            case MessageContext messageContext:
 1012                if (messageContext.TelegramMessage.From is null)
 13                {
 014                    identity = default;
 015                    return false;
 16                }
 17
 1018                identity = new TelegramRoleFilterIdentity(
 1019                    messageContext.TelegramChat.Id,
 1020                    messageContext.TelegramMessage.From.Id);
 1021                return true;
 22
 23            case CallbackQueryContext callbackContext:
 224                if (callbackContext.TelegramCallbackQuery.Message is not { } maybeMessage ||
 225                    !maybeMessage.TryGetMessage(out var message) ||
 226                    message is null)
 27                {
 128                    identity = default;
 129                    return false;
 30                }
 31
 132                identity = new TelegramRoleFilterIdentity(
 133                    message.Chat.Id,
 134                    callbackContext.TelegramCallbackQuery.From.Id);
 135                return true;
 36
 37            case ChatMemberUpdatedContext chatMemberContext:
 138                identity = new TelegramRoleFilterIdentity(
 139                    chatMemberContext.TelegramChat.Id,
 140                    chatMemberContext.Actor.Id);
 141                return true;
 42
 43            default:
 044                identity = default;
 045                return false;
 46        }
 47    }
 48}