private void Logg(TraceEventType viktighet, Guid konversasjonsId, Forretningskvittering kvittering, bool datoPrefiks, bool isXml, params string[] filsti) { var fileSuffix = isXml ? ".xml" : ".txt"; Logg(viktighet,konversasjonsId,kvittering.Rådata, datoPrefiks, isXml,"Mottatt - " + kvittering.GetType().Name + fileSuffix); }
/// <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); }