/// <summary> /// Get a list of messages that are available for retrieval. /// </summary> /// <param name="listRequest">The parameters for the list operation.</param> /// <param name="endpointUrl">The endpoint URL for the SMR service.</param> /// <returns>A list of available messages.</returns> public MessageListType List(list listRequest, Uri endpointUrl) { Validation.ValidateArgumentRequired("listRequest", listRequest); Validation.ValidateArgumentRequired("endpointUrl", endpointUrl); Validation.ValidateArgumentRequired("listRequest.receiverOrganisation", listRequest.receiverOrganisation); if (smrClient is Nehta.SMD2010.SMR.SealedMessageRetrievalClient) { Nehta.SMD2010.SMR.SealedMessageRetrievalClient client = (Nehta.SMD2010.SMR.SealedMessageRetrievalClient)smrClient; client.Endpoint.Address = new EndpointAddress(endpointUrl); } listRequest request = new listRequest(); request.list = listRequest; listResponse1 response = smrClient.list(request); if (response != null && response.listResponse != null) { return(response.listResponse.list); } else { throw new ApplicationException(Properties.Resources.UnexpectedServiceResponse); } }
/// <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> /// Initializes an instance of the SealedMessageRetrievalClient. /// </summary> /// <param name="configurationName">Endpoint configuration name for the SMR endpoint.</param> /// <param name="tlsCert">The client certificate to be used to establish the TLS connection.</param> private void InitializeClient(string configurationName, X509Certificate2 tlsCert) { this.smrMessages = new SoapInspector.SoapMessages(); Nehta.SMD2010.SMR.SealedMessageRetrievalClient client = null; if (!string.IsNullOrEmpty(configurationName)) { client = new Nehta.SMD2010.SMR.SealedMessageRetrievalClient(configurationName); } else { EndpointAddress address = new EndpointAddress("http://ns.electronichealth.net.au"); CustomBinding tlsBinding = GetBinding(); client = new Nehta.SMD2010.SMR.SealedMessageRetrievalClient(tlsBinding, address); } if (client != null) { SoapInspector.InspectEndpoint(client.Endpoint, smrMessages); client.ClientCredentials.ClientCertificate.Certificate = tlsCert; smrClient = client; } }