/// <summary> /// Retrieve a list of Sealed Messages. /// </summary> /// <param name="retrieveRequest">The parameters for the retrieve operation.</param> /// <param name="endpointUrl">The endpoint URL for the SMR service.</param> /// <returns>A list of Sealed Messages.</returns> public SealedMessageType[] Retrieve(retrieve retrieveRequest, Uri endpointUrl) { Validation.ValidateArgumentRequired("retrieveRequest", retrieveRequest); Validation.ValidateArgumentRequired("endpointUrl", endpointUrl); Validation.ValidateArgumentRequired("retrieveRequest.receiverOrganisation", retrieveRequest.receiverOrganisation); Validation.ValidateArgumentRequired("retrieveRequest.invocationId", retrieveRequest.invocationId); if (smrClient is Nehta.SMD2010.SMR.SealedMessageRetrievalClient) { Nehta.SMD2010.SMR.SealedMessageRetrievalClient client = (Nehta.SMD2010.SMR.SealedMessageRetrievalClient)smrClient; client.Endpoint.Address = new EndpointAddress(endpointUrl); } retrieveRequest request = new retrieveRequest(); request.retrieve = retrieveRequest; retrieveResponse response = smrClient.retrieve(request); if (response != null) { return(response.retrieveResponse1); } else { throw new ApplicationException(Properties.Resources.UnexpectedServiceResponse); } }
/// <summary> /// Retrieve a list of Transport Responses. /// </summary> /// <param name="retrieveRequest">The parameters for the retrieve operation.</param> /// <param name="endpointUrl">The endpoint URL for the TRR service.</param> /// <returns>A list of available responses.</returns> public TransportResponseListType Retrieve(retrieve retrieveRequest, Uri endpointUrl) { Validation.ValidateArgumentRequired("retrieveRequest", retrieveRequest); Validation.ValidateArgumentRequired("endpointUrl", endpointUrl); Validation.ValidateArgumentRequired("retrieveRequest.organisation", retrieveRequest.organisation); if (trrClient is Nehta.SMD2010.TRR.TransportResponseRetrievalClient) { Nehta.SMD2010.TRR.TransportResponseRetrievalClient client = (Nehta.SMD2010.TRR.TransportResponseRetrievalClient)trrClient; client.Endpoint.Address = new EndpointAddress(endpointUrl); } retrieveRequest request = new retrieveRequest(); request.retrieve = retrieveRequest; retrieveResponse1 response = trrClient.retrieve(request); if (response != null && response.retrieveResponse != null) { return(response.retrieveResponse.list); } else { throw new ApplicationException(Properties.Resources.UnexpectedServiceResponse); } }
public void Sample() { // TLS certificate used to authenticate the client to the TRR service during TLS connection. X509Certificate2 tlsCert = X509CertificateUtil.GetCertificate("TlsCertificateSerialNumber", X509FindType.FindBySerialNumber, StoreName.My, StoreLocation.CurrentUser, true); // Instantiate client TransportResponseRetrievalClient client = new TransportResponseRetrievalClient(tlsCert); // ------------------------------------------------------------------------------ // Retrieve // ------------------------------------------------------------------------------ // Set up request retrieve retrieveRequest = new retrieve() { allAvailable = true, limit = 0, organisation = HIQualifiers.HPIOQualifier + "16 digit HPIO of receiver organisation" }; // Invoke the Retrieve operation TransportResponseListType responseList = client.Retrieve(retrieveRequest, new Uri("https://TRREndpointUri")); // ------------------------------------------------------------------------------ // Remove // ------------------------------------------------------------------------------ // Build list of retrieved transport response IDs string[] responseIds = responseList.response.Select(r => r.metadata.responseId).ToArray(); // Set up request remove removeRequest = new remove() { force = true, organisation = HIQualifiers.HPIOQualifier + "16 digit HPIO of receiver organisation", responseId = responseIds }; // Invoke the Remove operation RemoveResultType[] removeResults = client.Remove(removeRequest, new Uri("https://TRREndpointUri")); }
public void Sample() { // TLS certificate used to authenticate the client to the SMR service during TLS connection. X509Certificate2 tlsCert = X509CertificateUtil.GetCertificate("TlsCertificateSerialNumber", X509FindType.FindBySerialNumber, StoreName.My, StoreLocation.CurrentUser, true); // Certificate used to sign the payload. X509Certificate2 signingCert = X509CertificateUtil.GetCertificate("SigningCertificateSerialNumber", X509FindType.FindBySerialNumber, StoreName.My, StoreLocation.CurrentUser, true); // Certificate used to encrypt the payload. X509Certificate2 payloadDecryptionCert = X509CertificateUtil.GetCertificate("DecryptionCertificateSerialNumber", X509FindType.FindBySerialNumber, StoreName.My, StoreLocation.CurrentUser, true); // Instantiate client SealedMessageRetrievalClient client = new SealedMessageRetrievalClient(tlsCert); // ------------------------------------------------------------------------------ // List // ------------------------------------------------------------------------------ // Set up request list listRequest = new list() { allAvailable = true, limit = 0, receiverOrganisation = HIQualifiers.HPIOQualifier + "16 digit HPIO of receiver organisation" }; // Invoke the List operation MessageListType messageList = client.List(listRequest, new Uri("https://SMRServiceEndpointUri")); // ------------------------------------------------------------------------------ // Retrieve // ------------------------------------------------------------------------------ // Get list of invocation IDs obtained from List operation string[] invocationIds = messageList.retrievalRecord.Select(r => r.metadata.invocationId).ToArray(); // Set up request retrieve retrieveRequest = new retrieve() { invocationId = invocationIds, receiverOrganisation = HIQualifiers.HPIOQualifier + "16 digit HPIO of receiver organisation" }; // Invoke the Retrieve operation SealedMessageType[] sealedMessages = client.Retrieve(retrieveRequest, new Uri("https://SMRServiceEndpointUri")); // ------------------------------------------------------------------------------ // Obtaining the payload from the Sealed Messages // ------------------------------------------------------------------------------ // Obtain the first Sealed Message to decrypt SealedMessageType sealedMessage = sealedMessages[0]; // Serialize the encrypted payload XmlDocument encryptedPayload = sealedMessage.encryptedPayload.SerializeToXml("encryptedPayload"); // Decrypt the payload, obtaining the signed payload XmlDocument decryptedPayload = encryptedPayload.XspDecrypt(payloadDecryptionCert); // Obtain the original payload from the signed payload XmlDocument originalPayload = decryptedPayload.XspGetPayloadFromSignedDocument(); }