private static APKKeuringsregistratieEvent CreateEvent(string response, AutoKlaargemeldEvent autoKlaargemeldEvent) { try { var apkKeuringsregistratieEvent = new APKKeuringsregistratieEvent() { GUID = Guid.NewGuid().ToString(), RoutingKey = "Jomaya.Onderhoudsopdracht.Updated", TimeStamp = DateTime.UtcNow }; apkKeuringsregistratieEvent.Kenteken = response.Substring(response.IndexOf("<kenteken>") + 10, response.IndexOf("</kenteken>") - (response.IndexOf("<kenteken>") + 10)); var steekproef = !response.Contains("<apk:steekproef xsi:nil=\"true\"/>"); if (steekproef) { var steekproefDatum = response.Substring(response.IndexOf("<apk:steekproef>") + 16, response.IndexOf("</apk:steekproef>") - (response.IndexOf("<apk:steekproef>") + 16)); apkKeuringsregistratieEvent.SteekproefDatum = DateTime.Parse(steekproefDatum); apkKeuringsregistratieEvent.Status = Common.OnderhoudStatus.InSteekproef; } else { apkKeuringsregistratieEvent.Status = Common.OnderhoudStatus.Afgemeld; } apkKeuringsregistratieEvent.AutoId = autoKlaargemeldEvent.AutoId; apkKeuringsregistratieEvent.OnderhoudId = autoKlaargemeldEvent.OnderhoudId; apkKeuringsregistratieEvent.Kilometerstand = autoKlaargemeldEvent.KilometerStand; apkKeuringsregistratieEvent.Werkzaamheden = autoKlaargemeldEvent.Werkzaamheden; apkKeuringsregistratieEvent.OnderhoudsDatum = autoKlaargemeldEvent.OnderhoudsDatum; return(apkKeuringsregistratieEvent); } catch (Exception e) { ExceptionEventPublisher.PublishException(e); return(null); } }
public void Createmessage(AutoKlaargemeldEvent autoKlaargemeldEvent, Garage garage) { try { string message = @"<apkKeuringsverzoekRequestMessage xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'> <keuringsverzoek xmlns='http://www.rdw.nl' xmlns:apk='http://www.rdw.nl/apk' correlatieId='51a33867-b5ec-4f10-9b31-b4e3ddcb58eb'>" + $"<voertuig type='personenauto'>" + $"<kenteken>{autoKlaargemeldEvent.Kenteken.Replace(" ", "")}</kenteken>" + $"<kilometerstand>{autoKlaargemeldEvent.KilometerStand}</kilometerstand>" + $"<naam>{autoKlaargemeldEvent.EigenaarNaam}</naam>" + $"</voertuig>" + $"<apk:keuringsdatum>{DateTime.Now.ToString("yyyy-MM-dd")}</apk:keuringsdatum>" + $"<apk:keuringsinstantie type='garage' kvk='3013 5370'>" + $"<apk:naam>{garage.GarageNaam}</apk:naam>" + $"<apk:plaats>{garage.PlaatsNaam}</apk:plaats>" + @"</apk:keuringsinstantie> </keuringsverzoek> </apkKeuringsverzoekRequestMessage>"; string url = "http://rdwserver:18423/rdw/APKKeuringsverzoek"; string response = PostMessage(url, message); APKKeuringsregistratieEvent apkKeuringsregistratieEvent = CreateEvent(response, autoKlaargemeldEvent); _publisher.Publish(apkKeuringsregistratieEvent); } catch (Exception e) { ExceptionEventPublisher.PublishException(e); } }
private Onderhoudsopdracht CreateOnderhoudsopdrachtFromAPKKeuringsEvent(APKKeuringsregistratieEvent e) { // event na RDW Service met steekproef update return(new Onderhoudsopdracht() { AutoId = e.AutoId, Id = e.OnderhoudId, Status = e.Status, IsApk = true, Kilometerstand = e.Kilometerstand, SteekproefDatum = e.SteekproefDatum, Werkzaamheden = e.Werkzaamheden, Datum = e.OnderhoudsDatum }); }
public void OnAPKKeuringsregistratieEventReceived(APKKeuringsregistratieEvent e) { Onderhoudsopdracht onderhoudsopdracht = CreateOnderhoudsopdrachtFromAPKKeuringsEvent(e); _autoService.UpdateOnderhoudsopdracht(onderhoudsopdracht); }