Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        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());
        }