protected override void ExecuteProcedure()
        {
            var disk = VirtualDiskCommon.LoadByMirroring(_diskId);
            var file = VirtualFileCommon.FindById(_fileId, QueryLevel.Mirroring);

            //文件删除后减少虚拟磁盘的大小
            disk.Delete(file);
            VirtualDiskCommon.Update(disk);
        }
        protected override VirtualDirectory ExecuteProcedure()
        {
            var disk      = LoadDisk();
            var directory = BuildDirectory(disk);

            disk.Create(directory);
            VirtualDiskCommon.Update(disk);
            return(directory);
        }
        private VirtualDisk LoadDisk()
        {
            VirtualDisk disk = VirtualDiskCommon.FindById(_diskId, QueryLevel.Single);

            if (disk.IsEmpty())
            {
                throw new BusinessException(string.Format(Strings.NotFoundVirtualDisk, _diskId));
            }
            return(disk);
        }
        protected override VirtualFile ExecuteProcedure()
        {
            VirtualDirectory directory = GetDirectory();
            VirtualFile      file      = BuildVirtualFile();
            var disk = directory.Disk;

            disk.Create(directory, file);
            VirtualDiskCommon.Update(disk);
            return(file);
        }
        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);
        }