예제 #1
0
        public ManifestContainer CreateManifest(IEnumerable <AsicePackageEntry> entries)
        {
            var manifest = new ASiCManifestType {
                DataObjectReference = entries.Select(ToDataObject).ToArray()
            };
            SignatureFileRef signatureFileRef = null;

            if (addSignatureFile)
            {
                signatureFileRef      = CadesSignature.CreateSignatureRef();
                manifest.SigReference = new SigReferenceType
                {
                    MimeType = signatureFileRef.MimeType.ToString(), URI = signatureFileRef.FileName
                };
            }

            using (var outStream = new MemoryStream())
                using (var xmlWriter = CreateXmlWriter(outStream))
                {
                    new XmlSerializer(typeof(ASiCManifestType)).Serialize(xmlWriter, manifest, CreateNamespaces());

                    //Stupid whitespace manipulation to please DNB
                    var resultString = Encoding.UTF8.GetString(outStream.ToArray());
                    resultString = resultString.Replace(" />", "/>").Replace(" xmlns=\"http://uri.etsi.org/02918/v1.2.1#\"", "") + "\n";
                    var x = Encoding.UTF8.GetBytes(resultString);


                    return(new ManifestContainer(AsiceConstants.CadesManifestFilename, x, signatureFileRef, ManifestSpec.Cades));
                }
        }
        public ManifestContainer CreateManifest(IEnumerable <AsicePackageEntry> entries)
        {
            var manifest = new ASiCManifestType {
                DataObjectReference = entries.Select(ToDataObject).ToArray()
            };
            SignatureFileRef signatureFileRef = null;

            if (addSignatureFile)
            {
                signatureFileRef      = CadesSignature.CreateSignatureRef();
                manifest.SigReference = new SigReferenceType
                {
                    MimeType = signatureFileRef.MimeType.ToString(), URI = signatureFileRef.FileName
                };
            }

            using (var outStream = new MemoryStream())
                using (var xmlWriter = CreateXmlWriter(outStream))
                {
                    new XmlSerializer(typeof(ASiCManifestType)).Serialize(xmlWriter, manifest, CreateNamespaces());
                    return(new ManifestContainer(AsiceConstants.CadesManifestFilename, outStream.ToArray(), signatureFileRef, ManifestSpec.Cades));
                }
        }