| File: Telemetry\PackageExtractionTelemetryEvent.cs | Web Access |
| Project: src\nuget-client\src\NuGet.Core\NuGet.Packaging\NuGet.Packaging.csproj (NuGet.Packaging) |
// Copyright (c) .NET Foundation. All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using NuGet.Common; using NuGet.Packaging.Core; namespace NuGet.Packaging { public class PackageExtractionTelemetryEvent : TelemetryEvent { public const string EventName = "PackageExtractionInformation"; public PackageSaveMode PackageSaveMode => (PackageSaveMode)(base[nameof(PackageSaveMode)]!); public NuGetOperationStatus Status => (NuGetOperationStatus)(base[nameof(Status)]!); public ExtractionSource ExtractionSource => (ExtractionSource)(base[nameof(ExtractionSource)]!); public string? PackageId => base[nameof(PackageId)] as string; public string? PackageVersion => base[nameof(PackageVersion)] as string; public PackageExtractionTelemetryEvent( PackageSaveMode packageSaveMode, NuGetOperationStatus status, ExtractionSource extractionSource, PackageIdentity? packageId = null) : base(EventName, new Dictionary<string, object?> { { nameof(Status), status }, { nameof(ExtractionSource), extractionSource }, { nameof(PackageSaveMode), packageSaveMode } }) { if (packageId != null) { LogPackageIdentity(packageId); } } [SuppressMessage("Globalization", "CA1308:Normalize strings to uppercase", Justification = "Matching existing code and existing logged telemetry.")] public void LogPackageIdentity(PackageIdentity packageId) { AddPiiData(nameof(PackageId), packageId.Id.ToLowerInvariant()); AddPiiData(nameof(PackageVersion), packageId.Version!.ToNormalizedString().ToLowerInvariant()); } public void SetResult(NuGetOperationStatus status) { base[nameof(Status)] = status; } } }