/// <summary> /// /// </summary> /// <param name="e"></param> public void HandlerApkEvent(ApkAfgemeldEvent e) { using (var context = new OnderhoudBeheerContext(_options)) using (var repository = new OnderhoudsopdrachtRepository(context)) { var opdracht = repository.Find(e.OnderhoudsBeurtId); OpdrachtStatus newState = e.HasSteekProef ? OpdrachtStatussen.Klaargemeld() : OpdrachtStatussen.Afgemeld(); opdracht.OpdrachtStatus = newState.StatusId; opdracht.OpdrachtStatusBeschrijving = newState.Beschrijving; repository.Update(opdracht); var updateEvent = new OnderhoudsopdrachtUpdatedEvent() { RoutingKey = "Minor.Case2.MaRoWo.OnderhoudsBeheer.OnderhoudsopdrachtUpdated", TimeStamp = DateTime.UtcNow, CorrelationID = Guid.NewGuid(), OnderhoudsBeurtId = opdracht.Id, HasApk = opdracht.HasApk, Kenteken = opdracht.Kenteken, Kilometerstand = opdracht.Kilometerstand, OnderhoudsBeschrijving = opdracht.OnderhoudsBeschrijving, OpdrachtAangemaakt = opdracht.OpdrachtAangemaakt, OpdrachtStatus = opdracht.OpdrachtStatus, OpdrachtStatusBeschrijving = opdracht.OpdrachtStatusBeschrijving, Bestuurder = opdracht.Bestuurder, TelefoonNrBestuurder = opdracht.TelefoonNrBestuurder }; _publisher.Publish(updateEvent); } }
public void HandleApkRequestWithSteekproef() { var pubMock = new Mock <IEventPublisher>(MockBehavior.Strict); pubMock.Setup(x => x.Publish(It.IsAny <DomainEvent>())); var service = new ApkEventService(_options, pubMock.Object); long id = -1; using (var context = new OnderhoudBeheerContext(_options)) using (var repo = new OnderhoudsopdrachtRepository(context)) { id = repo.Insert(new Onderhoudsopdracht() { Kenteken = "AA-BB-11", HasApk = true, Kilometerstand = 100, OnderhoudsBeschrijving = "Achterlicht links vervangen", OpdrachtAangemaakt = DateTime.UtcNow, OpdrachtStatus = OpdrachtStatussen.Aangemeld().StatusId, OpdrachtStatusBeschrijving = OpdrachtStatussen.Aangemeld().Beschrijving, Bestuurder = "Rob", TelefoonNrBestuurder = "1232323" }); } var apkEvent = new ApkAfgemeldEvent(); apkEvent.CorrelationID = new Guid(); apkEvent.HasSteekProef = true; apkEvent.Kenteken = "12-12-12"; apkEvent.SteekProefDatum = new DateTime(2016, 12, 12); apkEvent.TimeStamp = new DateTime(); apkEvent.RoutingKey = "test"; apkEvent.OnderhoudsBeurtId = id; service.HandlerApkEvent(apkEvent); pubMock.Verify(x => x.Publish(It.IsAny <DomainEvent>()), Times.Once); using (var context = new OnderhoudBeheerContext(_options)) using (var repo = new OnderhoudsopdrachtRepository(context)) { var opdracht = repo.Find(id); Assert.AreEqual(OpdrachtStatussen.Klaargemeld().StatusId, opdracht.OpdrachtStatus); Assert.AreEqual(OpdrachtStatussen.Klaargemeld().Beschrijving, opdracht.OpdrachtStatusBeschrijving); } }
private void PublishApkEvent(KeuringsVerzoekAntwoord respone, ApkKeuringsVerzoekCommand apkCommand) { var apkCreated = new ApkAfgemeldEvent(); apkCreated.CorrelationID = Guid.NewGuid(); apkCreated.RoutingKey = "Minor.Case2.MaRoWe.RWD.Integration.ApkAfgemeld"; apkCreated.TimeStamp = DateTime.UtcNow; apkCreated.Kenteken = apkCommand.Kenteken; apkCreated.OnderhoudsBeurtId = apkCommand.OnderhoudsBeurtId; apkCreated.HasSteekProef = respone.IsSteekProef; if (respone.IsSteekProef) { apkCreated.SteekProefDatum = respone.SteepkProefDate.Value; } _publisher.Publish(apkCreated); }
/// <summary> /// /// </summary> /// <param name="e"></param> public void HandlerApkEvent(ApkAfgemeldEvent e) { _service.HandlerApkEvent(e); }