Exemplo n.º 1
0
        /// <summary>
        /// 编辑功能角色映射信息
        /// </summary>
        /// <param name="dto">功能角色映射信息DTO</param>
        /// <returns>业务操作结果</returns>
        public virtual async Task <OperationResult> EditFunctionRoleMapAsync(TFunctionRoleMapDto dto)
        {
            dto.CheckNotNull("dto");
            TFunctionRoleMap map = await FunctionRoleMapRepository.GetByKeyAsync(dto.Id);

            if (map == null)
            {
                return(new OperationResult(OperationResultType.QueryNull, "指定编号的功能角色映射信息不存在"));
            }
            map = dto.MapTo(map);
            if (!map.Function.Id.Equals(dto.FunctionId))
            {
                TFunction function = await FunctionRepository.GetByKeyAsync(dto.FunctionId);

                if (function == null)
                {
                    return(new OperationResult(OperationResultType.QueryNull, "指定编号的功能信息不存在"));
                }
                map.Function = function;
            }
            if (!map.Role.Id.Equals(dto.RoleId))
            {
                TRole role = await RoleRepository.GetByKeyAsync(dto.RoleId);

                if (role == null)
                {
                    return(new OperationResult(OperationResultType.QueryNull, "指定编号的角色信息不存在"));
                }
                map.Role = role;
            }
            return(await FunctionRoleMapRepository.UpdateAsync(map) > 0
                ? new OperationResult(OperationResultType.Success, "功能角色映射信息编辑成功")
                : OperationResult.NoChanged);
        }