public void AggregateCount() { var q = new SqlQuerySpec("select count(1) from c where c.entity = @entity and c.artificialIq > @iq", new SqlParameterCollection { new SqlParameter("@entity", Robot.Entity), new SqlParameter("@iq", 120) }); var result = _aggregate.Get(q); Assert.AreEqual(_robots.Count(x => x.ArtificialIq > 120), result); }
public Handlers(AggregateRepository repository) { Register <AdmitPatient>(async c => { var encounter = new Encounter(c.PatientId, c.PatientName, c.AgeInYears, c.WardNumber); await repository.Save(encounter); }); Register <TransferPatient>(async c => { var encounter = await repository.Get <Encounter>(c.PatientId); encounter.Transfer(c.WardNumber); await repository.Save(encounter); }); Register <DischargePatient>(async c => { var encounter = await repository.Get <Encounter>(c.PatientId); encounter.DischargePatient(); await repository.Save(encounter); }); }
public async Task AggregateRepository_get_restores_correct_state() { var aggregateId = _aggregateId; var eventStore = new EventStore(); var eventStream = new EventStream(aggregateId, AggregateRoot.InitialVersion + 1, GenerateRandomizedEvents(_numberOfEvents).ToArray()); eventStore.EventStreams.Add(eventStream); var AggregateRepository = new AggregateRepository(eventStore, new AggregateFactory(GetLogger <Aggregate>()), GetLogger <AggregateRepository>()); var aggregate = await AggregateRepository.Get <Aggregate>(aggregateId); Assert.Equal(_numberOfEvents, aggregate.Version + 1); Assert.Equal(aggregateId, aggregate.Id); }
public Handlers(AggregateRepository repository) { Register <RegisterUserCommand>(async c => { var user = new User(c.UserID, c.FirstName, c.LastName, c.PhoneNumber, c.EmailAddress, c.Password); await repository.Save(user); }); Register <ChangePasswordCommand>(async c => { var user = await repository.Get <User>(c.UserID); user.ChangePassword(c.Password); await repository.Save(user); }); }