private VirtualDirectory LoadDirectory()
        {
            var dir = VirtualDirectoryCommon.FindById(_dirId, QueryLevel.Single);

            if (dir.IsEmpty())
            {
                throw new BusinessException(string.Format(Strings.NotFoundVirtualDirectory, _dirId));
            }
            return(dir);
        }
예제 #2
0
        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);
        }