< Summary

Information
Class: TeleFlow.Annotations.MessageThreadIdAttribute
Assembly: TeleFlow.Annotations
File(s): /_/src/TeleFlow.Annotations/Filters/MessageThreadIdAttribute.cs
Line coverage
75%
Covered lines: 6
Uncovered lines: 2
Coverable lines: 8
Total lines: 33
Line coverage: 75%
Branch coverage
50%
Covered branches: 2
Total branches: 4
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)50%4475%

File(s)

/_/src/TeleFlow.Annotations/Filters/MessageThreadIdAttribute.cs

#LineLine coverage
 1namespace TeleFlow.Annotations;
 2/// <summary>
 3/// Restricts a handler or handler class to specific forum message thread ids.
 4/// </summary>
 5[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
 6public sealed class MessageThreadIdAttribute : TeleFlowAttribute
 7{
 8    /// <summary>
 9    /// Creates a message thread id filter.
 10    /// </summary>
 11    /// <param name="messageThreadIds">Telegram message thread ids allowed to match.</param>
 912    public MessageThreadIdAttribute(params long[] messageThreadIds)
 13    {
 914        ArgumentNullException.ThrowIfNull(messageThreadIds);
 15
 916        if (messageThreadIds.Length == 0)
 17        {
 018            throw new ArgumentException("At least one Telegram message thread id must be specified.", nameof(messageThre
 19        }
 20
 1821        if (messageThreadIds.Any(static messageThreadId => messageThreadId <= 0))
 22        {
 023            throw new ArgumentException("Telegram message thread ids must be positive.", nameof(messageThreadIds));
 24        }
 25
 926        MessageThreadIds = messageThreadIds.ToArray();
 927    }
 28
 29    /// <summary>
 30    /// Telegram message thread ids allowed to match.
 31    /// </summary>
 32    public IReadOnlyList<long> MessageThreadIds { get; }
 33}

Methods/Properties

.ctor(System.Int64[])