コード例 #1
0
 internal bool Remove(AddinBodyRecord addin)
 {
     _changed       = true;
     _deletedAddins = _deletedAddins ?? new List <AddinBodyRecord>();
     _deletedAddins.Add(addin);
     return(true);
 }
コード例 #2
0
        void RegisterExtensionsForExtensionPoint(AddinBodyRecord addinBody, ExtensionPointRecord epRecord)
        {
            var ebGroup = addinBody.GetExtensionBuilderGroup(epRecord.Id);

            if (ebGroup != null)
            {
                _exSystemLoader.RegisterExtensionBuilderGroup(ebGroup);
            }

            var exGroup = addinBody.GetExtensionGroup(epRecord.Id);

            if (exGroup != null)
            {
                _exSystemLoader.RegisterExtensionGroup(epRecord, exGroup);
            }
        }
コード例 #3
0
        internal bool TryGet(Guid guid, out AddinBodyRecord addin)
        {
            if (_guid2Addins.TryGetValue(guid, out addin))
            {
                return(true);
            }

            if (!_storage.ContainsStream(guid))
            {
                return(false);
            }
            using (var stream = _storage.OpenStream(guid))
            {
                addin = new AddinBodyRecord(guid);
                addin.Read(stream);
            }

            _guid2Addins.Add(guid, addin);
            return(true);
        }
コード例 #4
0
 internal void Add(AddinBodyRecord addin)
 {
     _changed     = true;
     _addedAddins = _addedAddins ?? new List <AddinBodyRecord>();
     _addedAddins.Add(addin);
 }
コード例 #5
0
        static AddinRecord ToPersistentObject(AddinResolution adnResolution)
        {
            var addinFilePack    = ToAddinFilePack(adnResolution);
            var addinIndexRecord = new AddinIndexRecord(addinFilePack)
            {
                RunningStatus = adnResolution.RunningStatus,
                AddinHeader   = ToPersistentObject(adnResolution.AddinHeader),
            };
            var addinBodyRecord = new AddinBodyRecord(adnResolution.Guid);

            if (adnResolution.ReferencedAssemblySets != null)
            {
                foreach (var referencedAssemblySet in adnResolution.ReferencedAssemblySets)
                {
                    addinIndexRecord.AddReferencedAssembly(new ReferencedAssemblyRecord
                    {
                        Uid     = referencedAssemblySet.Uid,
                        Version = referencedAssemblySet.Version
                    });
                }
            }

            if (adnResolution.ExtendedAddins != null)
            {
                foreach (var extendedAddin in adnResolution.ExtendedAddins)
                {
                    addinIndexRecord.AddExtendedAddin(new ExtendedAddinRecord
                    {
                        Uid     = extendedAddin.AddinId.Uid,
                        Version = extendedAddin.AddinHeader.Version
                    });
                }
            }

            if (adnResolution.ExtendedExtensionPoints != null)
            {
                foreach (var extendedExtensionPoint in adnResolution.ExtendedExtensionPoints)
                {
                    addinIndexRecord.AddExtendedExtensionPoint(extendedExtensionPoint.Uid);
                }
            }

            if (adnResolution.ExtensionPoints != null)
            {
                foreach (var extensionPoint in adnResolution.ExtensionPoints)
                {
                    //if (extensionPoint.Children == null)
                    //    continue;
                    var epRecord = extensionPoint.ToRecord();
                    addinIndexRecord.AddExtensionPoint(ToBaseObject(epRecord));
                    addinBodyRecord.AddExtensionPoint(epRecord);
                }
            }

            if (adnResolution.ExtensionBuilderGroups != null)
            {
                foreach (var extensionBuilderGroup in adnResolution.ExtensionBuilderGroups)
                {
                    addinBodyRecord.AddExtensionBuilderGroup(extensionBuilderGroup.ToRecord());
                }
            }

            if (adnResolution.ExtensionGroups != null)
            {
                foreach (var extensionGroup in adnResolution.ExtensionGroups)
                {
                    addinBodyRecord.AddExtensionGroup(extensionGroup.ToRecord());
                }
            }

            return(new AddinRecord {
                AddinIndex = addinIndexRecord, AddinBody = addinBodyRecord
            });
        }