public async Task <Result> Modify([FromBody] RoleModifyRequestDto dto) { var server = _serviceProvider.GetRequiredService <RoleService>(); long?tenancyId = HttpContext.User.IsSuperRole() ? null : Convert.ToInt64(HttpContext.User.TenancyId()); var result = await server.Get(dto.Id, tenancyId); if (!result.Success) { return(Result.ReFailure(result.Message, result.Status)); } // 除总超级管理员之外其他不允许操作其他租户信息 if (tenancyId != null && result.Data.TenancyId != tenancyId) { return(Result.ReFailure(ResultCodes.TenancyMatchExist)); } result.Data.CreateId = Convert.ToInt64(HttpContext.User.UserId()); if (dto.PermissionId != null && dto.PermissionId.Count > 0) { result.Data.PermissionRole.Clear(); foreach (long value in dto.PermissionId.ToList()) { if (result.Data.PermissionRole.Count(f => f.PermissionId == value) == 0) { result.Data.PermissionRole.Add(new PermissionRole() { PermissionId = value, RoleId = dto.Id }); } } } return(await server.Modify(_mapper.Map(dto, result.Data))); }
public async Task <Result> Modify([FromBody] RoleModifyRequestDto dto) { //验证请求数据合法性 var result = dto.Valid(); if (!result.Success) { return(result); } //调用领域服务修改 var modifyResult = this._serviceProvider.GetRequiredService <RoleInfoChangeService>() .Modify(dto.RoleId, dto.Name, dto.Enable, dto.Description, dto.Permissions); if (!modifyResult.Success) { return(modifyResult); } //数据持久化 _operateLog.Record(ASFPermissions.RoleModify, dto, "Success"); //记录日志 await _roleRepository.ModifyAsync(modifyResult.Data); await _unitOfWork.CommitAsync(autoRollback : true); return(Result.ReSuccess()); }
public virtual async Task <Result> Modify([FromBody] RoleModifyRequestDto dto) { //验证请求数据合法性 var result = dto.Valid(); if (!result.Success) { return(result); } //调用领域服务修改 var modifyResult = IocManager.Instance.Resolve <RoleInfoChangeService>() .Modify(dto.RoleId, dto.Name, dto.Enable, dto.Description, dto.Permissions); if (!modifyResult.Success) { return(modifyResult); } //数据持久化 _operateLog.Record(ASFPermissions.RoleModify, dto, "Success"); //记录日志 await _roleRepository.ModifyAsync(modifyResult.Data); return(Result.ReSuccess()); }