コード例 #1
0
 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()));
 }
コード例 #2
0
        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);
        }