Ejemplo n.º 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);
                }
        }
Ejemplo n.º 2
0
 public void StartUp()
 {
     _options = TestDatabaseProvider.CreateMsSQLDatabaseOptions();
     using (var context = new OnderhoudBeheerContext(_options, true))
     {
         // recreate the database
     }
 }
        public void Init()
        {
            // Use InMemory database for testing, records are not removed afterwards from Local Database
            //_options = TestDatabaseProvider.CreateInMemoryDatabaseOptions();
            _options = TestDatabaseProvider.CreateMsSQLDatabaseOptions();

            using (var context = new OnderhoudBeheerContext(_options, true))
            {
                // recreate the database
            }
        }
Ejemplo n.º 4
0
        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);
                }
        }
Ejemplo n.º 5
0
        public void Initialize()
        {
            // Use InMemory database for testing, records are not removed afterwards from Local Database
            //_options = TestDatabaseProvider.CreateInMemoryDatabaseOptions();
            _options = TestDatabaseProvider.CreateMsSQLDatabaseOptions();
            using (var context = new OnderhoudBeheerContext(_options, true))
            {
                // recreate the database
            }

            _validCreateOnderhoudCommands = new List <CreateOnderhoudCommand>
            {
                new CreateOnderhoudCommand
                {
                    Kenteken               = "11-AA-ZZ",
                    Kilometerstand         = 13000,
                    HasApk                 = true,
                    OnderhoudsBeschrijving = "Beide achterlichten vervangen",
                    OpdrachtAangemaakt     = DateTime.UtcNow,
                    Bestuurder             = "Max",
                    TelefoonNrBestuurder   = "12893712983"
                },
                new CreateOnderhoudCommand
                {
                    Kenteken               = "ZZ-111-B",
                    Kilometerstand         = 200,
                    HasApk                 = false,
                    OnderhoudsBeschrijving = "Accu vervangen",
                    OpdrachtAangemaakt     = DateTime.UtcNow,
                    Bestuurder             = "Rob",
                    TelefoonNrBestuurder   = "013-11213-1-3"
                },
                new CreateOnderhoudCommand
                {
                    Kenteken               = "RR-01-BB",
                    Kilometerstand         = 600,
                    HasApk                 = false,
                    OnderhoudsBeschrijving = "Koppakking vervangen",
                    OpdrachtAangemaakt     = DateTime.UtcNow,
                    Bestuurder             = "Wouter",
                    TelefoonNrBestuurder   = "+49 123 312 123"
                },
            };
        }