/// <summary> /// Bekreft mottak av forretningskvittering gjennom <see cref="HentKvittering(Kvitteringsforespørsel)"/>. /// <list type="bullet"> /// <listheader><description><para>Dette legger opp til følgende arbeidsflyt</para></description></listheader> /// <item><description><para><see cref="HentKvittering(Kvitteringsforespørsel)"/></para></description></item> /// <item><description><para>Gjør intern prosessering av kvitteringen (lagre til database, og så videre)</para></description></item> /// <item><description><para>Bekreft mottak av kvittering</para></description></item> /// </list> /// </summary> /// <param name="forrigeKvittering"></param> /// <remarks> /// <see cref="HentKvittering(Kvitteringsforespørsel)"/> kommer ikke til å returnere en ny kvittering før mottak av den forrige er bekreftet. /// </remarks> public async Task BekreftAsync(Forretningskvittering forrigeKvittering) { Logging.Log(TraceEventType.Information, forrigeKvittering.KonversasjonsId, "Bekrefter forrige kvittering."); var envelopeSettings = new EnvelopeSettings(forrigeKvittering, _databehandler, new GuidUtility()); var kvitteringMottattEnvelope = new KvitteringsbekreftelseEnvelope(envelopeSettings); string filnavn = forrigeKvittering.GetType().Name + ".xml"; Logg(TraceEventType.Verbose, forrigeKvittering.KonversasjonsId, forrigeKvittering, true, true, filnavn); try { var kvitteringMottattEnvelopeValidering = new KvitteringMottattEnvelopeValidator(); var kvitteringMottattEnvelopeValidert = kvitteringMottattEnvelopeValidering.ValiderDokumentMotXsd(kvitteringMottattEnvelope.Xml().OuterXml); if (!kvitteringMottattEnvelopeValidert) throw new Exception(kvitteringMottattEnvelopeValidering.ValideringsVarsler); } catch (Exception e) { throw new XmlValidationException("Kvitteringsbekreftelse validerer ikke:" + e.Message); } var soapContainer = new SoapContainer(kvitteringMottattEnvelope); await SendSoapContainer(soapContainer); }
/// <summary> /// Bekreft mottak av <see cref="Forretningskvittering" /> mottatt gjennom /// <see cref="HentKvittering(Kvitteringsforespørsel)" />. /// <list type="bullet"> /// <listheader> /// <description> /// <para>Dette legger opp til følgende arbeidsflyt:</para> /// </description> /// </listheader> /// <item> /// <description> /// <para> /// <see cref="HentKvittering(Kvitteringsforespørsel)" />. /// </para> /// </description> /// </item> /// <item> /// <description> /// <para>Gjør intern prosessering av <see cref="Kvittering">Kvitteringen</see>.</para> /// </description> /// </item> /// <item> /// <description> /// <para><see cref="BekreftAsync">Bekreft</see> mottak av <see cref="Forretningskvittering" />.</para> /// </description> /// </item> /// </list> /// </summary> /// <param name="kvittering"></param> /// <remarks> /// <see cref="HentKvittering(Kvitteringsforespørsel)" /> kommer ikke til å returnere en ny kvittering før mottak av /// den forrige er bekreftet. /// </remarks> public async Task BekreftAsync(Forretningskvittering kvittering) { var envelopeSettings = new EnvelopeSettings(kvittering, Databehandler, new GuidUtility()); var bekreftKvitteringEnvelope = new KvitteringsbekreftelseEnvelope(envelopeSettings); ValidateEnvelopeAndThrowIfInvalid(bekreftKvitteringEnvelope, bekreftKvitteringEnvelope.GetType().Name); await RequestHelper.ConfirmReceipt(bekreftKvitteringEnvelope).ConfigureAwait(false); Log.Debug($"Bekreftet kvittering, conversationId '{kvittering.KonversasjonsId}'"); }
public Task ConfirmReceipt(KvitteringsbekreftelseEnvelope kvitteringsbekreftelseEnvelope) { return Send(kvitteringsbekreftelseEnvelope); }