/// <summary> /// Sender en <see cref="Forsendelse" /> til Meldingsformidler. /// </summary> /// <param name="forsendelse"> /// All informasjon, klar til å kunne sendes (mottakerinformasjon, sertifikater, /// vedlegg mm), enten digitalt eller fysisk. /// </param> public async Task <Transportkvittering> SendAsync(Forsendelse forsendelse) { var guidUtility = new GuidUtility(); Log.Debug($"Utgående forsendelse, conversationId '{forsendelse.KonversasjonsId}', messageId '{guidUtility.MessageId}'."); var documentBundle = AsiceGenerator.Create(forsendelse, guidUtility, Databehandler.Sertifikat, Klientkonfigurasjon); var forretningsmeldingEnvelope = new ForretningsmeldingEnvelope(new EnvelopeSettings(forsendelse, documentBundle, Databehandler, guidUtility, Klientkonfigurasjon)); ValidateEnvelopeAndThrowIfInvalid(forretningsmeldingEnvelope, forretningsmeldingEnvelope.GetType().Name); var transportReceipt = (Transportkvittering)await RequestHelper.SendMessage(forretningsmeldingEnvelope, documentBundle).ConfigureAwait(false); transportReceipt.AntallBytesDokumentpakke = documentBundle.BillableBytes; var transportReceiptXml = transportReceipt.Xml; if (transportReceipt is TransportOkKvittering) { Log.Debug($"{transportReceipt}"); var responsvalidator = new ResponseValidator(forretningsmeldingEnvelope.Xml(), transportReceiptXml, CertificateValidationProperties); responsvalidator.ValidateTransportReceipt(guidUtility); } else { Log.Error($"{transportReceipt}"); } return(transportReceipt); }
private static SoapContainer LagSoapContainer(ForretningsmeldingEnvelope forretningsmeldingEnvelope, AsicEArkiv arkiv) { var soapContainer = new SoapContainer(forretningsmeldingEnvelope); soapContainer.Vedlegg.Add(arkiv); return(soapContainer); }
private ForretningsmeldingEnvelope LagForretningsmeldingEnvelope(Forsendelse forsendelse, AsicEArkiv arkiv, GuidUtility guidHandler) { var forretningsmeldingEnvelope = new ForretningsmeldingEnvelope(new EnvelopeSettings(forsendelse, arkiv, _databehandler, guidHandler, _klientkonfigurasjon)); return(forretningsmeldingEnvelope); }
public async Task <Kvittering> SendMessage(ForretningsmeldingEnvelope envelope, DocumentBundle asiceDocumentBundle) { var result = await Send(envelope, asiceDocumentBundle).ConfigureAwait(false); return(KvitteringFactory.GetKvittering(result)); }