public Task <Unit> Handle(EditStaffPasswordCommand request, CancellationToken cancellationToken) { try { // 命令验证 if (!request.IsValid()) { // 错误信息收集 NotifyValidationErrors(request); return(Task.FromResult(new Unit())); } if (request.NewPassword == request.Password) { _bus.RaiseEvent(new DomainNotification("", "新密码与原密码不能一致")); return(Task.FromResult(new Unit())); } var oldPassword = _md5Encryptor.Encrypt(request.Password); var staffInfo = _staffRepository.GetAll(x => x.Id == request.Id && (string.IsNullOrWhiteSpace(request.NewPassword) || x.Password == oldPassword))?.SingleOrDefault(); if (staffInfo == null) { _bus.RaiseEvent(new DomainNotification("", "原密码错误,请重新输入")); return(Task.FromResult(new Unit())); } staffInfo.Password = _md5Encryptor.Encrypt(request.NewPassword); staffInfo.UpdateDate = request.UpdateDate; staffInfo.UpdateBy = request.UpdateBy; _staffRepository.Update(staffInfo); // 统一提交 if (!Commit()) { throw new AggregateException("修改密码失败"); } } catch (Exception e) { _bus.RaiseEvent(new DomainNotification("", $"系统异常,发生未知错误:{e.Message}")); } return(Task.FromResult(new Unit())); }
public void EditStaffPassword(EditStaffPasswordRequestModel request, Guid id, Guid updateBy, DateTime?updateDateTime = null) { EditStaffPasswordCommand command = new EditStaffPasswordCommand(id, request.Password, request.NewPassword, updateBy, updateDateTime ?? DateTime.Now); _bus.SendCommand(command); }