예제 #1
0
        protected override void ReadMetadataPartsFromImage()
        {
            base.ReadMetadataPartsFromImage();

            var requestRootPointer = from row in Image.Rows.AsParallel()
                                     where row.FileName == "root"
                                     select new RootPointer(row);

            _rootPointer = requestRootPointer.FirstOrDefault();
            if (_rootPointer == null)
            {
                throw new InvalidOperationException("Unsupported file structure. May be 8.0 format. RootPointer == null");
            }

            lock (MetadataObjects)
            {
                MetadataObjects.Add(_rootPointer);
            }

            var requestRoot = from row in Image.Rows.AsParallel()
                              where row.FileName.Contains(_rootPointer.MetadataPackageFileName.ToString())
                              select row;

            PackagePart = new Configuration(requestRoot.FirstOrDefault());
            lock (MetadataObjects)
            {
                MetadataObjects.Add(PackagePart);
            }

            var requestVersion = from row in Image.Rows.AsParallel()
                                 where row.FileName == "version"
                                 select row;

            _version = new Version(requestVersion.FirstOrDefault());
            lock (MetadataObjects)
            {
                MetadataObjects.Add(_version);
            }

            var requestVersions = from row in Image.Rows.AsParallel()
                                  where row.FileName == "versions"
                                  select row;

            _versions = new Versions(requestVersions.FirstOrDefault());
            lock (MetadataObjects)
            {
                MetadataObjects.Add(_versions);
            }

            ReadMetadataObjects();
        }
예제 #2
0
        protected override void ReadMetadataPartsFromImage()
        {
            base.ReadMetadataPartsFromImage();

            var requestUpdateInfo = from row in Image.Rows.AsParallel()
                                    where row.FileName == "UpdateInfo.inf"
                                    select new UpdateInfo(row);
            var updateInfo = requestUpdateInfo.FirstOrDefault();

            lock (MetadataObjects)
            {
                MetadataObjects.Add(updateInfo);
            }
        }