Exemple #1
0
        private void ReadMetadataObjects(Type typePart, Collection list)
        {
            Collection packagePartModel = PackagePart.GetModel();

            var sectionGuid = typePart.GetCustomAttributes(false).OfType <GuidAttribute>().FirstOrDefault();

            if (sectionGuid != null)
            {
                if (sectionGuid.Value != list[0].ToString())
                {
                    throw new InvalidOperationException("Section Guid is invalid");
                }
            }

            var guids = list.Skip(2);

            var request = from row in Image.Rows.AsParallel()
                          where guids.Contains(row.FileName)
                          select Activator.CreateInstance(typePart, new object[] { row }) as ImageRowElement;

            var array = request.ToArray();

            array.AsParallel().ForAll(m => m.Package = this);

            lock (MetadataObjects)
            {
                MetadataObjects.AddRange(array);
            }
        }
Exemple #2
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();
        }
Exemple #3
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);
            }
        }