|
|
|
@ -113,29 +113,42 @@ internal sealed class TelemetrySolutionInfoEnricher : TelemetryActivityEventEnri |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
var moduleJsonFileContent = File.ReadAllText(modulePath); |
|
|
|
using var moduleDoc = JsonDocument.Parse(moduleJsonFileContent, new JsonDocumentOptions |
|
|
|
{ |
|
|
|
AllowTrailingCommas = true |
|
|
|
}); |
|
|
|
ExtractModuleImportsInfo(modulePath, modules); |
|
|
|
} |
|
|
|
|
|
|
|
context.Current[ActivityPropertyNames.InstalledModules] = modules; |
|
|
|
} |
|
|
|
|
|
|
|
private static void ExtractModuleImportsInfo(string modulePath, List<Dictionary<string, object?>> modules) |
|
|
|
{ |
|
|
|
var moduleJsonFileContent = File.ReadAllText(modulePath); |
|
|
|
using var moduleDoc = JsonDocument.Parse(moduleJsonFileContent, new JsonDocumentOptions |
|
|
|
{ |
|
|
|
AllowTrailingCommas = true |
|
|
|
}); |
|
|
|
|
|
|
|
if (!moduleDoc.RootElement.TryGetProperty("imports", out var imports)) |
|
|
|
if (!moduleDoc.RootElement.TryGetProperty("imports", out var imports)) |
|
|
|
{ |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
foreach (var import in imports.EnumerateObject()) |
|
|
|
{ |
|
|
|
var importPath = GetModuleFilePath(modulePath, import); |
|
|
|
|
|
|
|
if (!importPath.IsNullOrEmpty()) |
|
|
|
{ |
|
|
|
ExtractModuleImportsInfo(importPath, modules); |
|
|
|
continue; |
|
|
|
} |
|
|
|
|
|
|
|
foreach (var import in imports.EnumerateObject()) |
|
|
|
|
|
|
|
modules.Add(new Dictionary<string, object?> |
|
|
|
{ |
|
|
|
modules.Add(new Dictionary<string, object?> |
|
|
|
{ |
|
|
|
{ ActivityPropertyNames.ModuleName, import.Name }, |
|
|
|
{ ActivityPropertyNames.ModuleVersion, TelemetryJsonExtensions.GetStringOrNull(import.Value, "version") }, |
|
|
|
{ ActivityPropertyNames.ModuleInstallationTime, TelemetryJsonExtensions.GetDateTimeOffsetOrNull(import.Value, "creationTime") } |
|
|
|
}); |
|
|
|
} |
|
|
|
{ ActivityPropertyNames.ModuleName, import.Name }, |
|
|
|
{ ActivityPropertyNames.ModuleVersion, TelemetryJsonExtensions.GetStringOrNull(import.Value, "version") }, |
|
|
|
{ ActivityPropertyNames.ModuleInstallationTime, TelemetryJsonExtensions.GetDateTimeOffsetOrNull(import.Value, "creationTime") } |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
context.Current[ActivityPropertyNames.InstalledModules] = modules; |
|
|
|
} |
|
|
|
|
|
|
|
private static string? GetModuleFilePath(string solutionPath, JsonProperty module) |
|
|
|
|