Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        public Task <SOAPEnvelope <EHealthBoxSendMessageResponseBody> > SendMessage(EHealthBoxSendMessageRequest request)
        {
            var assertion = _sessionService.GetSession().Body.Response.Assertion;

            return(SendMessage(request, assertion));
        }
Exemplo n.º 3
0
        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);
        }