示例#1
0
        internal bool Introspect(IMessageDialog dialog)
        {
            var result = true;

            if (AddinHeader == null)
            {
                dialog.AddError("");
                result = false;
            }
            else
            {
                result &= AddinHeader.Introspect(dialog);
            }

            if (ExtensionDeclaration == null && ExtensionImplementation == null)
            {
                dialog.AddError("");
                result = false;
            }

            if (ExtensionDeclaration != null)
            {
                result &= ExtensionDeclaration.Introspect(dialog);
            }

            if (ExtensionImplementation != null)
            {
                result &= ExtensionImplementation.Introspect(dialog);
            }

            return(result);
        }
示例#2
0
        internal bool TryParse(IMessageDialog dialog, out AddinResolution result)
        {
            result = new NewAddinResolution();
            AddinHeaderResolution addinHeader;

            if (!AddinHeader.TryParse(dialog, result, out addinHeader))
            {
                return(false);
            }
            List <ExtensionPointResolution>        extensionPoints        = null;
            List <ExtensionBuilderResolutionGroup> extensionBuilderGroups = null;

            if (ExtensionDeclaration != null && !ExtensionDeclaration.TryParse(dialog, result, out extensionPoints, out extensionBuilderGroups))
            {
                return(false);
            }
            List <ExtensionResolutionGroup> extensionGroups = null;

            if (ExtensionImplementation != null && !ExtensionImplementation.TryParse(dialog, result, out extensionGroups))
            {
                return(false);
            }

            result.AddinHeader            = addinHeader;
            result.ManifestFile           = ManifestFile;
            result.ExtensionBuilderGroups = extensionBuilderGroups;
            result.ExtensionPoints        = extensionPoints;
            result.ExtensionGroups        = extensionGroups;
            result.RunningStatus          = addinHeader.Enabled ? AddinRunningStatus.Enabled : AddinRunningStatus.Disabled;

            if (AssemblyFiles != null)
            {
                result.Assemblies = new List <AssemblyResolution>(AssemblyFiles.Count);
                foreach (var assemblyFile in AssemblyFiles)
                {
                    result.Assemblies.Add(AssemblyResolution.CreateAddinAssembly(result, assemblyFile));
                }
            }
            if (DataFiles != null)
            {
                result.DataFiles = new List <DataFileResolution>(DataFiles.Count);
                foreach (var dataFile in DataFiles)
                {
                    result.DataFiles.Add(dataFile);
                }
            }
            return(true);
        }