public override async Task <DeleteToDoByIdCommand> HandleAsync(DeleteToDoByIdCommand command, CancellationToken cancellationToken = new CancellationToken()) { using (var uow = new ToDoContext(_dbContextOptions)) { var repository = new ToDoItemRepositoryAsync(uow); await repository.DeleteAsync(command.ToDoId, cancellationToken); } return(await base.HandleAsync(command, cancellationToken)); }
public override async Task <AddToDoCommand> HandleAsync(AddToDoCommand command, CancellationToken cancellationToken = new CancellationToken()) { using (var uow = new ToDoContext(_options)) { var repository = new ToDoItemRepositoryAsync(uow); var savedItem = await repository.AddAsync( new ToDoItem { Title = command.Title, Completed = command.Commpleted, Order = command.Order }, cancellationToken ); command.ToDoItemId = savedItem.Id; } _commandProcessor.Post(new TaskCreatedEvent(command.Title)); return(await base.HandleAsync(command, cancellationToken)); }
public override async Task <BulkAddToDoCommand> HandleAsync(BulkAddToDoCommand command, CancellationToken cancellationToken = new CancellationToken()) { using (var uow = new ToDoContext(_options)) { var repository = new ToDoItemRepositoryAsync(uow); foreach (var todo in command.ToDos) { var savedItem = await repository.AddAsync( new ToDoItem { Title = todo.Title, Completed = todo.Completed, Order = todo.Order }, cancellationToken ); command.ToDoItemIds.Add(savedItem.Id); } return(await base.HandleAsync(command, cancellationToken)); } }
public override async Task <UpdateToDoCommand> HandleAsync(UpdateToDoCommand command, CancellationToken cancellationToken = new CancellationToken()) { string title; using (var uow = new ToDoContext(_options)) { var repository = new ToDoItemRepositoryAsync(uow); var toDoItem = await repository.GetAsync(command.ToDoId, cancellationToken); if (command.Title != null) { toDoItem.Title = command.Title; } if (command.Complete.HasValue) { toDoItem.Completed = command.Complete.Value; } if (command.Order.HasValue) { toDoItem.Order = command.Order.Value; } await repository.UpdateAsync(toDoItem, cancellationToken); title = toDoItem.Title; } if (command.Complete.HasValue && command.Complete.Value) { var taskCompleteEvent = new TaskCompletedEvent(title); _commandProcessor.Post(taskCompleteEvent); } return(await base.HandleAsync(command, cancellationToken)); }