private VirtualDirectory LoadDirectory() { var dir = VirtualDirectoryCommon.FindById(_dirId, QueryLevel.Single); if (dir.IsEmpty()) { throw new BusinessException(string.Format(Strings.NotFoundVirtualDirectory, _dirId)); } return(dir); }
private VirtualDirectory GetDirectory() { var directory = VirtualDirectoryCommon.FindById(_directoryId, QueryLevel.Mirroring); if (directory.IsEmpty()) { throw new BusinessException(string.Format(Strings.NotFoundVirtualDirectory, _directoryId)); } return(directory); }
private void SetParent(VirtualDirectory dir) { if (_parentId != Guid.Empty) { var parent = VirtualDirectoryCommon.FindById(_parentId, QueryLevel.Mirroring); if (!parent.IsEmpty()) { dir.Parent = parent; } } }
protected override void ExecuteProcedure() { var disk = VirtualDiskCommon.LoadByMirroring(_diskId); VirtualDirectory dir = VirtualDirectoryCommon.FindById(_dirId, QueryLevel.Mirroring); //这里需要测试,dir内部的this.Disk和 disk要是同一个对象,在当前会话里都是同一个镜像 //if(ReferenceEquals(disk, dir.Disk)) //{ //} if (dir.IsSystem && !_force) { throw new BusinessException(Strings.CanNotDeleteSystemDirectory); } disk.Delete(dir); VirtualDiskCommon.Update(disk); }