public override void RecordMetric(PackageActionType actionType, PackageIdentity packageIdentity, PackageIdentity dependentPackage, bool isUpdate, IInstallationTarget target) { // No-op, V2 doesn't support this. }
public override async void RecordMetric(PackageActionType actionType, PackageIdentity packageIdentity, PackageIdentity dependentPackage, bool isUpdate, IInstallationTarget target) { await DetectVersionWhenNeccessary(); _repo.RecordMetric(actionType, packageIdentity, dependentPackage, isUpdate, target); }
public override void RecordMetric(PackageActionType actionType, PackageIdentity packageIdentity, PackageIdentity dependentPackage, bool isUpdate, IInstallationTarget target) { // should not be called throw new NotImplementedException(); }
// Async void because we don't want metric recording to block anything at all public override async void RecordMetric(PackageActionType actionType, PackageIdentity packageIdentity, PackageIdentity dependentPackage, bool isUpdate, IInstallationTarget target) { var metricsUrl = await GetServiceUri(ServiceUris.MetricsService); if (metricsUrl == null) { // Nothing to do! return; } // Create the JSON payload var payload = new JObject(); payload.Add("id", packageIdentity.Id); payload.Add("version", packageIdentity.Version.ToNormalizedString()); payload.Add("operation", isUpdate ? "Update" : "Install"); payload.Add("userAgent", _userAgent); payload.Add("targetFrameworks", new JArray(target.GetSupportedFrameworks().Select(fx => VersionUtility.GetShortFrameworkName(fx)))); if (dependentPackage != null) { payload.Add("dependentPackage", dependentPackage.Id); payload.Add("dependentPackageVersion", dependentPackage.Version.ToNormalizedString()); } target.AddMetricsMetadata(payload); // Post the message await _http.PostAsync(metricsUrl, new StringContent(payload.ToString())); }