Files
MQTTnet/Source/MQTTnet.PowerShell/Cmdlets/SubscribeMqttTopicCmdlet.cs
T
2025-10-20 20:52:31 +02:00

30 lines
929 B
C#

// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
using System.Management.Automation;
namespace MQTTnet.PowerShell.Cmdlets;
[Cmdlet("Subscribe", "MqttTopic")]
[OutputType(typeof(MqttClientSubscribeResult))]
public class SubscribeMqttTopicCmdlet : PSCmdlet
{
[Parameter]
public int QoS { get; set; } = 0;
[Parameter(Mandatory = true, ValueFromPipeline = true)]
public required MqttSession Session { get; set; }
[Parameter(Mandatory = true)]
public required string Topic { get; set; }
protected override void ProcessRecord()
{
var topicFilter = new MqttTopicFilterBuilder().WithTopic(Topic).Build();
var response = Session.Client.SubscribeAsync(topicFilter).GetAwaiter().GetResult();
WriteObject(response);
}
}