public Task <SOAPEnvelope <EHealthBoxSendMessageResponseBody> > SendMessage(EHealthBoxSendMessageRequest request, Action <EHealthBoxSendMessageRequestBuilder> callback, SAMLAssertion assertion) { var builder = EHealthBoxSendMessageRequestBuilder.New(); callback(builder); builder.Build(); return(SendMessage(builder.Build(), assertion)); }
public Task <SOAPEnvelope <EHealthBoxSendMessageResponseBody> > SendMessage(EHealthBoxSendMessageRequest request) { var assertion = _sessionService.GetSession().Body.Response.Assertion; return(SendMessage(request, assertion)); }
public async Task <SOAPEnvelope <EHealthBoxSendMessageResponseBody> > SendMessage(EHealthBoxSendMessageRequest request, SAMLAssertion assertion) { var issueInstant = DateTime.UtcNow; var orgCertificate = _keyStoreManager.GetOrgAuthCertificate(); var soapRequest = SOAPRequestBuilder <EHealthBoxSendMessageRequestBody> .New(new EHealthBoxSendMessageRequestBody { Id = $"id-{Guid.NewGuid().ToString()}", Request = request }) .AddTimestamp(issueInstant, issueInstant.AddHours(1)) .AddSAMLAssertion(assertion) .AddReferenceToSAMLAssertion() .SignWithCertificate(orgCertificate) .Build(); var httpResult = await _soapClient.Send(soapRequest, new Uri(_options.EhealthboxPublication), "urn:be:fgov:ehealth:ehbox:publication:protocol:v3:sendMessage"); var xml = await httpResult.Content.ReadAsStringAsync(); httpResult.EnsureSuccessStatusCode(); var result = SOAPEnvelope <EHealthBoxSendMessageResponseBody> .Deserialize(xml); return(result); }