private string SerializeKeuringsverzoekToXml(keuringsverzoek verzoek) { XmlSerializer keuringsverzoekSerializer = new XmlSerializer(typeof(keuringsverzoek)); using (var stringWriter = new StringWriter()) { using (XmlWriter writer = XmlWriter.Create(stringWriter, new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true })) { keuringsverzoekSerializer.Serialize(writer, verzoek); var result = stringWriter.ToString(); result = "<apkKeuringsverzoekRequestMessage xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">" + result; result = result + "</apkKeuringsverzoekRequestMessage>"; return(result); } } }
public async Task <IActionResult> Verzoek([FromBody] KeuringsVerzoekCommand keuringsVerzoekCommand) { var verzoek = new keuringsverzoek() { keuringsdatum = DateTime.Now, voertuig = new keuringsverzoekVoertuig() { kenteken = keuringsVerzoekCommand.Kenteken, kilometerstand = keuringsVerzoekCommand.Kilometerstand, naam = keuringsVerzoekCommand.Klantnaam } }; string response; try { string verzoekXml = SerializeKeuringsverzoekToXml(verzoek); response = await _RDWAgent.SendKeuringsVerzoekAsync(verzoekXml); var keuringsregistratie = SerializeToKeuringsregistratie(response); bool isSteekproef = keuringsregistratie.steekproef != null; _logContext.Logs.Add(new Log() { Xml = verzoekXml, Type = typeof(keuringsverzoek).ToString() }); _logContext.Logs.Add(new Log() { Xml = response, Type = typeof(keuringsregistratie).ToString() }); _logContext.SaveChanges(); if (!isSteekproef) { _publisher.Publish(new KeuringVerwerktZonderSteekproefEvent() { OnderhoudsGuid = keuringsVerzoekCommand.OnderhoudsGuid, Keuringsdatum = keuringsregistratie.keuringsdatum }); } else if (isSteekproef) { _publisher.Publish(new KeuringVerwerktMetSteekproefEvent() { OnderhoudsGuid = keuringsVerzoekCommand.OnderhoudsGuid, SteefproefDatum = (DateTime)keuringsregistratie.steekproef, Keuringsdatum = keuringsregistratie.keuringsdatum }); } } catch (AggregateException exception) { return(BadRequest()); } return(Ok()); }