示例#1
0
        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));
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }