public Repository(SchoolManagmentContext storage) { _storage = storage; }
public UnitOfWork(SchoolManagmentContext context) { _context = context; Students = new StudentRepository(_context); }
public StudentRepository(SchoolManagmentContext context) : base(context) { _context = context; }
protected async Task <IEnumerable <DomainEvent> > ReadEvents(Type aggregateType, SchoolManagmentContext connection, Guid aggregateId, int start, int count) { var events = new List <DomainEvent>(); var streamEvents = new List <DomainEvent>(); StreamEventsSlice currentSlice; var nextSliceStart = streamEvents.OrderByDescending(e => e.DateCreated).Last().ExpectedVersion; //Read the stream using pagesize which was set before. //We only need to read the full page ahead if expected results are larger than the page size do { int nextReadCount = count - streamEvents.Count(); if (nextReadCount > EventStorePageSize) { nextReadCount = EventStorePageSize; } var domainEvents = connection.DomainEvents.Where(e => e.AggregateRootId == aggregateId).Where(e => e.ExpectedVersion >= 0).Take(count); streamEvents.AddRange(currentSlice.Events); } while (!currentSlice.IsEndOfStream); //Deserialize and add to events list foreach (var returnedEvent in streamEvents) { events.Add(DeserializeEvent(returnedEvent)); } return(events); }