Esempio n. 1
0
 /// <summary>
 /// This allows an entity to add an event to this class
 /// </summary>
 /// <param name="dEvent">This is the domain event you want to sent</param>
 /// <param name="eventToSend">This allows you to send the event to either BeforeSave list, the AfterSave list or both. Default is BeforeSave List</param>
 public void AddEvent(IDomainEvent dEvent, EventToSend eventToSend = EventToSend.BeforeSave)
 {
     if (eventToSend == EventToSend.BeforeSave || eventToSend == EventToSend.BeforeAndAfterSave)
     {
         _beforeSaveEvents.Add(dEvent);
     }
     if (eventToSend == EventToSend.AfterSave || eventToSend == EventToSend.BeforeAndAfterSave)
     {
         _afterSaveChangesEvents.Add(dEvent);
     }
 }
Esempio n. 2
0
 /// <summary>
 /// This allows an entity to add an event to this class
 /// </summary>
 /// <param name="dEvent">This is the domain event you want to sent</param>
 /// <param name="eventToSend">This allows you to send the event to either BeforeSave, DuringSave or AfterSave. Default is BeforeSave List</param>
 public void AddEvent(IEntityEvent dEvent, EventToSend eventToSend = EventToSend.BeforeSave)
 {
     if (eventToSend == EventToSend.DuringSave)
     {
         _duringSaveEvents.Add(dEvent);
     }
     if (eventToSend == EventToSend.BeforeSave || eventToSend == EventToSend.BeforeAndAfterSave)
     {
         _beforeSaveEvents.Add(dEvent);
     }
     if (eventToSend == EventToSend.AfterSave || eventToSend == EventToSend.BeforeAndAfterSave)
     {
         _afterSaveChangesEvents.Add(dEvent);
     }
 }
Esempio n. 3
0
        public async Task TestMissingHandlerThrowsException(EventToSend beforeAfter)
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <ExampleDbContext>();
            var context = options.CreateAndSeedDbWithDiForHandlers <OrderCreatedHandler>();
            {
                var tax = new TaxRate(DateTime.Now, 6);
                context.Add(tax);

                //ATTEMPT
                tax.AddEvent(new EventWithNoHandler(), beforeAfter);
                var ex = await Assert.ThrowsAsync <GenericEventRunnerException>(async() => await context.SaveChangesAsync());

                //VERIFY
                ex.Message.ShouldEqual(beforeAfter == EventToSend.BeforeSave
                    ? $"Could not find a BeforeSave event handler for the event {typeof(EventWithNoHandler).Name}."
                    : $"Could not find a AfterSave event handler for the event {typeof(EventWithNoHandler).Name}.");
            }
        }