public async Task HandleAsync(TodoItemMarkedAsComplete @event) { var todoItem = await this._unitOfWork.Repository <TodoItem>().GetByIdAsync(@event.SourceId); todoItem.IsComplete = true; todoItem.Version = @event.Version; this._unitOfWork.Repository <TodoItem>().Update(todoItem); await this._unitOfWork.SaveChangesAsync(); }
public void MarkTodoItemAsComplete() { if (this.IsComplete) { throw new DomainValidationException("Todo item is already marked as complete"); } var @event = new TodoItemMarkedAsComplete(); ApplyEvent(@event); }
public async Task HandleAsync(TodoItemMarkedAsComplete @event) { await Task.Delay(500); }
public void When(TodoItemMarkedAsComplete @event) { this.IsComplete = true; }