public void ChangePassword(IWorkContext context, ChangeEmployeePasswordCommand command) { if (this.Password.IsEquals(command.Password)) { return; } this.ApplyEvent(new ChangeEmployeePasswordEvent() { AggregateId = this.AggregateId, Creator = context.GetWorkerName(), CreateDate = context.WorkTime, Version = this.Version, Password = command.Password, }); }
public ICommandHandlerResult Execute(ICommandContext context, ChangeEmployeePasswordCommand command) { var root = context.GetAggregateRoot(command.AggregateId, () => employeeRepository.Rebuild(command.AggregateId)); if (root == null) { return(context.CreateResult(CommandHandlerStatus.NotExists)); } root.ChangePassword(context, command); if (root.CanNotCommit()) { return(context.CreateResult(CommandHandlerStatus.NothingChanged)); } if (employeeRepository.Change(root) <= 0) { throw new RepositoryExcutingException("执行失败,请稍后再试"); } return(context.CreateResult(CommandHandlerStatus.Success)); }