/// <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 UpdateEventHandler(OnderhoudsopdrachtUpdatedEvent onderhoudsopdrachtUpdatedEvent) { Onderhoudsopdracht onderhoudsOpdracht = new Onderhoudsopdracht() { OnderhoudsId = onderhoudsopdrachtUpdatedEvent.OnderhoudsBeurtId, Kenteken = onderhoudsopdrachtUpdatedEvent.Kenteken, Kilometerstand = onderhoudsopdrachtUpdatedEvent.Kilometerstand, OnderhoudOmschrijving = onderhoudsopdrachtUpdatedEvent.OnderhoudsBeschrijving, IsAPKKeuring = onderhoudsopdrachtUpdatedEvent.HasApk, OpdrachtAangemaakt = onderhoudsopdrachtUpdatedEvent.OpdrachtAangemaakt, OpdrachtStatus = onderhoudsopdrachtUpdatedEvent.OpdrachtStatus, OpdrachtStatusBeschrijving = onderhoudsopdrachtUpdatedEvent.OpdrachtStatusBeschrijving, Bestuuder = onderhoudsopdrachtUpdatedEvent.Bestuurder, TelefoonNrBestuuder = onderhoudsopdrachtUpdatedEvent.TelefoonNrBestuurder }; InsertOrUpdateOnderhoudsopdracht(onderhoudsOpdracht); }
public void OnderhoudsopdrachtAfmelden(OnderhoudAfmeldenCommand onderhoudAfmeldenCommand) { // Map onderhoudCommand to a valid Onderhoudsopdracht entity if (!_onderhoudsopdrachtRepository.Exists(onderhoudAfmeldenCommand.OnderhoudsId)) { throw new ArgumentException("Opgegeven Id is niet gevonden in de database"); } var opdracht = _onderhoudsopdrachtRepository.Find(onderhoudAfmeldenCommand.OnderhoudsId); opdracht.OpdrachtStatus = OpdrachtStatussen.Afgemeld().StatusId; opdracht.OpdrachtStatusBeschrijving = OpdrachtStatussen.Afgemeld().Beschrijving; // Persist data using repository and store key after insert _onderhoudsopdrachtRepository.Update(opdracht); OnderhoudsopdrachtUpdatedEvent opdrachtUpdatedEvent = CreateUpdateEvent(opdracht); _eventPublisher.Publish(opdrachtUpdatedEvent); }