// The IsEmpty() check ensures that we dont' return a blank <SigningInformation> XElement
 // when there is no signing information, maintaining parity with the old asset manifest structure
 public XElement ToXml() => IsEmpty() ? null : new XElement(
     "SigningInformation",
     Attributes
     .ThrowIfMissingAttributes(RequiredAttributes)
     .CreateXmlAttributes(RequiredAttributes),
     Enumerable.Concat(
         FileExtensionSignInfo
         .OrderBy(fe => fe.Include, StringComparer.OrdinalIgnoreCase)
         .ThenBy(fe => fe.CertificateName, StringComparer.OrdinalIgnoreCase)
         .Select(fe => fe.ToXml()),
         FileSignInfo
         .OrderBy(f => f.Include, StringComparer.OrdinalIgnoreCase)
         .ThenBy(f => f.CertificateName, StringComparer.OrdinalIgnoreCase)
         .Select(f => f.ToXml()))
     .Concat(CertificatesSignInfo
             .OrderBy(f => f.Include, StringComparer.OrdinalIgnoreCase)
             .ThenBy(f => f.DualSigningAllowed, StringComparer.OrdinalIgnoreCase)
             .Select(f => f.ToXml()))
     .Concat(ItemsToSign
             .OrderBy(i => i.Include, StringComparer.OrdinalIgnoreCase)
             .Select(i => i.ToXml()))
     .Concat(StrongNameSignInfo
             .OrderBy(s => s.Include, StringComparer.OrdinalIgnoreCase)
             .ThenBy(s => s.PublicKeyToken, StringComparer.OrdinalIgnoreCase)
             .Select(s => s.ToXml())));
Example #2
0
 public void Add(SigningInformationModel source)
 {
     FileExtensionSignInfo.AddRange(source.FileExtensionSignInfo);
     FileSignInfo.AddRange(source.FileSignInfo);
     ItemsToSign.AddRange(source.ItemsToSign);
     StrongNameSignInfo.AddRange(source.StrongNameSignInfo);
 }
Example #3
0
 // The IsEmpty() check ensures that we dont' return a blank <SigningInformation> XElement
 // when there is no signing information, maintaining parity with the old asset manifest structure
 public XElement ToXml() => IsEmpty() ? null : new XElement(
     "SigningInformation",
     Enumerable.Concat(
         FileExtensionSignInfo
         .OrderBy(fe => fe.Extension, StringComparer.OrdinalIgnoreCase)
         .ThenBy(fe => fe.CertificateName, StringComparer.OrdinalIgnoreCase)
         .Select(fe => fe.ToXml()),
         FileSignInfo
         .OrderBy(f => f.File, StringComparer.OrdinalIgnoreCase)
         .ThenBy(f => f.CertificateName, StringComparer.OrdinalIgnoreCase)
         .Select(f => f.ToXml()))
     .Concat(ItemsToSign
             .OrderBy(i => i.File, StringComparer.OrdinalIgnoreCase)
             .Select(i => i.ToXml()))
     .Concat(StrongNameSignInfo
             .OrderBy(s => s.File, StringComparer.OrdinalIgnoreCase)
             .ThenBy(s => s.PublicKeyToken, StringComparer.OrdinalIgnoreCase)
             .Select(s => s.ToXml())));
Example #4
0
 public bool IsEmpty() => !FileExtensionSignInfo.Any() && !FileSignInfo.Any() &&
 !ItemsToSign.Any() && !StrongNameSignInfo.Any();