public byte[] Retrieve(String documentId) { Console.WriteLine("Retrieve"); // setup client SetupClient(); // create request String requestId = "dss-sign-request-" + Guid.NewGuid().ToString(); SignRequest signRequest = new SignRequest(); signRequest.RequestID = requestId; signRequest.Profile = DSSConstants.ARTIFACT_NAMESPACE; // add "ReturnStoredDocument" optional input AnyType optionalInputs = new AnyType(); DSSXSDNamespace.ReturnStoredDocument returnStoredDocument = new DSSXSDNamespace.ReturnStoredDocument(); returnStoredDocument.Identifier = documentId; XmlElement returnStoredDocumentElement = ToDom("ReturnStoredDocument", DSSConstants.ARTIFACT_NAMESPACE, returnStoredDocument, typeof(DSSXSDNamespace.ReturnStoredDocument)); optionalInputs.Any = new XmlElement[] { returnStoredDocumentElement }; signRequest.OptionalInputs = optionalInputs; // operate SignResponse signResponse = this.client.sign(signRequest); // parse response CheckResponse(signResponse, requestId); try { ValidateResult(signResponse); } catch (NotParseableXMLDocumentException e) { throw new SystemException(e.Message, e); } // check profile if (!signResponse.Profile.Equals(DSSConstants.ARTIFACT_NAMESPACE)) { throw new SystemException("Unexpected SignResponse.Profile: " + signResponse.Profile); } // get document DSSXSDNamespace.DocumentWithSignature documentWithSignature = FindDocumentWithSignature(signResponse); if (null == documentWithSignature || null == documentWithSignature.Document || null == documentWithSignature.Document.Item) { throw new DocumentNotFoundException(); } byte[] documentData; if (documentWithSignature.Document.Item is DSSXSDNamespace.Base64Data) { documentData = ((DSSXSDNamespace.Base64Data)documentWithSignature.Document.Item).Value; } else { documentData = (byte[])documentWithSignature.Document.Item; } return(documentData); }
public byte[] Retrieve(String documentId) { Console.WriteLine("Retrieve"); // setup client SetupClient(); // create request String requestId = "dss-sign-request-" + Guid.NewGuid().ToString(); SignRequest signRequest = new SignRequest(); signRequest.RequestID = requestId; signRequest.Profile = DSSConstants.ARTIFACT_NAMESPACE; // add "ReturnStoredDocument" optional input AnyType optionalInputs = new AnyType(); DSSXSDNamespace.ReturnStoredDocument returnStoredDocument = new DSSXSDNamespace.ReturnStoredDocument(); returnStoredDocument.Identifier = documentId; XmlElement returnStoredDocumentElement = ToDom("ReturnStoredDocument", DSSConstants.ARTIFACT_NAMESPACE, returnStoredDocument, typeof(DSSXSDNamespace.ReturnStoredDocument)); optionalInputs.Any = new XmlElement[] { returnStoredDocumentElement }; signRequest.OptionalInputs = optionalInputs; // operate SignResponse signResponse = this.client.sign(signRequest); // parse response CheckResponse(signResponse, requestId); try { ValidateResult(signResponse); } catch (NotParseableXMLDocumentException e) { throw new SystemException(e.Message, e); } // check profile if (!signResponse.Profile.Equals(DSSConstants.ARTIFACT_NAMESPACE)) { throw new SystemException("Unexpected SignResponse.Profile: " + signResponse.Profile); } // get document DSSXSDNamespace.DocumentWithSignature documentWithSignature = FindDocumentWithSignature(signResponse); if (null == documentWithSignature || null == documentWithSignature.Document || null == documentWithSignature.Document.Item) { throw new DocumentNotFoundException(); } byte[] documentData; if (documentWithSignature.Document.Item is DSSXSDNamespace.Base64Data) { documentData = ((DSSXSDNamespace.Base64Data)documentWithSignature.Document.Item).Value; } else { documentData = (byte[])documentWithSignature.Document.Item; } return documentData; }