in src/PortingAssistantExtensionTelemetry/Collector.cs [98:128]
public static void FileAssessmentCollect(IEnumerable<ApiAnalysisResult> selectedApis , string runId, string triggerType, string targetFramework, string extensionVersion, string visualStudioVersion)
{
var date = DateTime.Now;
var apiMetrics = selectedApis.GroupBy(elem => new
{
elem.CodeEntityDetails.Name,
elem.CodeEntityDetails.Namespace,
elem.CodeEntityDetails.OriginalDefinition,
elem.CodeEntityDetails.Package?.PackageId,
elem.CodeEntityDetails.Signature
}).Select(group => new APIMetrics
{
MetricsType = MetricsType.api,
RunId = runId,
TriggerType = triggerType,
PortingAssistantExtensionVersion = extensionVersion,
VisualStudioClientVersion = visualStudioVersion,
TargetFramework = targetFramework,
TimeStamp = date.ToString("MM/dd/yyyy HH:mm"),
name = group.First().CodeEntityDetails.Name,
nameSpace = group.First().CodeEntityDetails.Namespace,
originalDefinition = group.First().CodeEntityDetails.OriginalDefinition,
compatibility = group.First().CompatibilityResults[targetFramework].Compatibility,
packageId = group.First().CodeEntityDetails.Package.PackageId,
packageVersion = group.First().CodeEntityDetails.Package.Version,
apiType = group.First().CodeEntityDetails.CodeEntityType.ToString(),
hasActions = group.First().Recommendations.RecommendedActions.Any(action => action.RecommendedActionType != RecommendedActionType.NoRecommendation),
apiCounts = group.Count()
});
apiMetrics.ToList().ForEach(metric => TelemetryCollector.Collect(metric));
}