public void PopulateTraceAttributesFromPackageContents(Trace trace, string pathToUnzippedPackage)
 {
     var supplementalFile =
         Directory.EnumerateFileSystemEntries(pathToUnzippedPackage, BxrRSupplementalDataFileNamePattern)
             .FirstOrDefault();
     if (supplementalFile == null) return;
     foreach (var line in File.ReadLines(supplementalFile))
     {
         var matchInfo = Regex.Match(line, BxrRKeyValuePattern, RegexOptions.IgnoreCase);
         if (!matchInfo.Success) continue;
         var itemName = matchInfo.Groups[1].Value;
         var itemValue = matchInfo.Groups[2].Value;
         if (string.IsNullOrWhiteSpace(itemName) || string.IsNullOrWhiteSpace(itemValue)) continue;
         if (string.Equals(itemName, "ProductSKU", StringComparison.OrdinalIgnoreCase)) continue;
         if (string.Equals(itemName, "ProcessorIDsMerged", StringComparison.OrdinalIgnoreCase)) continue;
         var attr = new TraceAttribute
         {
             Name = itemName,
             StringValue = itemValue
         };
         if (string.Equals(attr.Name, "OSInstallDateWMI", StringComparison.OrdinalIgnoreCase))
             attr.DateTimeValue = ManagementDateTimeConverter.ToDateTime(attr.StringValue);
         if (string.Equals(attr.Name, "manufacturer", StringComparison.Ordinal))
             attr.Name = "Manufacturer";
         trace.AddMeasurement(attr);
     }
 }
 public void PopulateTraceAttributesFromPackageContents(Trace trace, string pathToUnzippedPackage)
 {
     foreach (var emailAddress in GetIcuEmailReportToAddresses(pathToUnzippedPackage))
     {
         trace.AddMeasurement(new TraceAttribute
         {
             Name = NameOfIcuMetaEmailReportToAttribute,
             StringValue = emailAddress
         });
     }
     foreach (var userNote in GetIseUserInitiatedNote(pathToUnzippedPackage))
     {
         trace.AddMeasurement(new TraceAttribute
         {
             Name = NameOfIcuUserNoteAttribute,
             StringValue = userNote
         });
     }
 }
 public void PopulateTraceAttributesFromFileName(Trace trace, string filePath)
 {
     var fileNameRelative = Path.GetFileName(filePath);
     if (string.IsNullOrEmpty(fileNameRelative)) throw new ArgumentNullException(nameof(fileNameRelative));
     var match = Regex.Match(fileNameRelative, IcuFileNamePattern, RegexOptions.IgnoreCase);
     if (match.Success)
     {
         trace.ComputerName = match.Groups["ComputerName"].Value;
         var tracestartDateTimeString = match.Groups["DateTime"].Value;
         trace.TracePackageTime = DateTime.ParseExact(tracestartDateTimeString, IcuDateTimeStringFormat,
             new DateTimeFormatInfo());
         trace.AddMeasurement(new TraceAttribute
         {
             Name = "Trigger",
             StringValue = match.Groups["TriggerName"].Value
         });
     }
 }