public async Task <DepartmentProjection> RemoveDepartment(Guid id) { var command = new RemoveDepartmentCommand(id); var result = await _commandDispatcher.Execute(command); return(result); }
public void Remove(IWorkContext context, RemoveDepartmentCommand command) { //Never.StructTuple this.ApplyEvent(new RemoveDepartmentEvent { AggregateId = this.AggregateId, CreateDate = context.WorkTime, Creator = context.GetWorkerName(), Version = this.Version, }); }
public void Handle(RemoveDepartmentCommand message) { if (!message.IsValid()) { NotifyValidationErrors(message); return; } var department = _departmentRepository.GetById(message.Id); _departmentRepository.Remove(department.Id); if (Commit()) { Bus.RaiseEvent(new DepartmentRemovedEvent(message.Id)); } }
public async void given_remove_department_command_command_dispatcher_should_get_same_command_created_in_controller() { var mockAgg = new DepartmentControllerMockAggregate(); var controller = mockAgg.DepartmentControllerFactory(); var input = new Guid(); var command = new RemoveDepartmentCommand(input); mockAgg.setup_dispatcher_to_verify_removeDepartmentCommands_are_the_same(input); var result = await controller.RemoveDepartment(input); //Assert Assert.IsType <DepartmentProjection>(result); Assert.Equal(result.Id, input); }
public async Task <ActionResult> RemoveDepartment(Guid?parentId, List <Guid> id) { if (id == null || id.Count == 0) { return(NotFound()); } var command = new RemoveDepartmentCommand() { DepartmentIds = id }; if (await Mediator.Send(command) == null) { return(BadRequest()); } return(Json(new { id = parentId })); }
public ICommandHandlerResult Execute(ICommandContext context, RemoveDepartmentCommand command) { var root = context.GetAggregateRoot(command.AggregateId, () => departmentRepository.Rebuild(command.AggregateId)); if (root == null) { return(context.CreateResult(CommandHandlerStatus.NotExists)); } root.Remove(context, command); if (root.CanNotCommit()) { return(context.CreateResult(CommandHandlerStatus.NothingChanged)); } //删除部门的组 var groups = this.groupRepository.RebuildRoots(command.AggregateId); if (groups != null && groups.Any()) { var deletes = new List <GroupAggregateRoot>(groups.Count()); foreach (var r in groups) { r.Remove(context, null); if (r.CanCommit()) { deletes.Add(r); } } if (deletes.Any()) { this.groupRepository.Remove(deletes); } } //删除部门的权限 var resources = this.departmentResourceRepository.RebuildRootUsingDepartId(command.AggregateId); if (resources != null && resources.Any()) { var deletes = new List <DepartmentResourceAggregateRoot>(resources.Count()); foreach (var r in resources) { r.Remove(context); if (r.CanCommit()) { deletes.Add(r); } } if (deletes.Any()) { this.departmentResourceRepository.Remove(deletes); } } if (departmentRepository.Remove(root) <= 0) { throw new RepositoryExcutingException("执行失败,请稍后再试"); } return(context.CreateResult(CommandHandlerStatus.Success)); }
public void Remove(string id) { var removeCommand = new RemoveDepartmentCommand(id); Bus.SendCommand(removeCommand); }