generated/runtime/CmdInfoHandler.cs
/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ using System; using System.Management.Automation; using System.Net.Http; using System.Threading; using System.Threading.Tasks; namespace Commvault.Powershell.Runtime { using NextDelegate = Func<HttpRequestMessage, CancellationToken, Action, Func<string, CancellationToken, Func<EventArgs>, Task>, Task<HttpResponseMessage>>; using SignalDelegate = Func<string, CancellationToken, Func<EventArgs>, Task>; public class CmdInfoHandler { private readonly string processRecordId; private readonly string parameterSetName; private readonly InvocationInfo invocationInfo; public CmdInfoHandler(string processRecordId, InvocationInfo invocationInfo, string parameterSetName) { this.processRecordId = processRecordId; this.parameterSetName = parameterSetName; this.invocationInfo = invocationInfo; } public Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken token, Action cancel, SignalDelegate signal, NextDelegate next) { request.Headers.Add("x-ms-client-request-id", processRecordId); request.Headers.Add("CommandName", invocationInfo?.InvocationName); request.Headers.Add("FullCommandName", invocationInfo?.MyCommand?.Name); request.Headers.Add("ParameterSetName", parameterSetName); // continue with pipeline. return next(request, token, cancel, signal); } } } |