Beispiel #1
0
 public static async Task SaveToJournal(this GridDomainNode node, string id, params object[] messages)
 {
     using (var repo = new ActorSystemJournalRepository(node.System, false))
     {
         await repo.Save(id, messages);
     }
 }
Beispiel #2
0
 public static async Task <object[]> LoadFromJournal(this GridDomainNode node, string id)
 {
     using (var repo = new ActorSystemJournalRepository(node.System))
     {
         return(await repo.Load(id));
     }
 }
        public async Task Given_persisted_aggreate()
        {
            var aggregateId   = Guid.NewGuid().ToString();
            var agregateValue = "initial";
            var aggregate     = new Balloon(aggregateId, agregateValue);

            using (var repo = new AggregateRepository(ActorSystemJournalRepository.New(new AutoTestSqlActorSystemFactory(),
                                                                                       new EventsAdaptersCatalog())))
            {
                await repo.Save(aggregate);
            }

            using (var repo = new AggregateRepository(ActorSystemJournalRepository.New(new AutoTestSqlActorSystemFactory(),
                                                                                       new EventsAdaptersCatalog())))
            {
                aggregate = await repo.LoadAggregate <Balloon>(aggregate.Id);
            }

            //Aggregate_has_correct_id()
            Assert.Equal(aggregateId, aggregate.Id);
            //Aggregate_has_state_from_changed_event()
            Assert.Equal(agregateValue, aggregate.Title);
        }