public async Task SaveEventAsync <TAggregate>(IDomainEvent @event) where TAggregate : IAggregateRoot { var aggregateDocument = await _aggregateRepository.GetDocumentAsync(@event.AggregateRootId.ToString()); if (aggregateDocument == null) { var newAggregateDocument = _aggregateDocumentFactory.CreateAggregate <TAggregate>(@event); await _aggregateRepository.CreateDocumentAsync(newAggregateDocument); } var currentVersion = await _eventRepository.GetCountAsync(d => d.AggregateId == @event.AggregateRootId); var eventDocument = _eventDocumentFactory.CreateEvent(@event, currentVersion + 1); await _eventRepository.CreateDocumentAsync(eventDocument); }
public async Task <IActionResult> EditAsync(string id) { if (id == null) { return(BadRequest()); } var resort = await _documentRepository.GetDocumentAsync(id); if (resort == null) { return(NotFound()); } var images = await GetImageFromDocument(resort.AltLink); resort.Images = images; return(View(resort)); }