コード例 #1
0
        /// <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);
                }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }