Esempio n. 1
0
        private static RepositoryVersionInfo Create(ApplicationInfo productVersion, IEnumerable <ApplicationInfo> applicationVersions, IEnumerable <Package> packages)
        {
            var asms = TypeHandler.GetAssemblyInfo();

            var sncr    = Assembly.GetExecutingAssembly();
            var binPath = IO.Path.GetDirectoryName(TypeHandler.GetCodeBase(sncr));

            var asmDyn = asms.Where(a => a.IsDynamic).ToArray();

            asms = asms.Except(asmDyn).ToArray();
            var asmInBin = asms.Where(a => a.CodeBase.StartsWith(binPath)).ToArray();

            asms = asms.Except(asmInBin).ToArray();
            var asmInGac = asms.Where(a => a.CodeBase.Contains("\\GAC")).ToArray();

            asms = asms.Except(asmInGac).ToArray();

            var asmSn   = asmInBin.Where(a => a.Name.StartsWith("SenseNet.")).ToArray();
            var plugins = asmInBin.Except(asmSn).ToArray();

            return(new RepositoryVersionInfo
            {
                OfficialSenseNetVersion = productVersion,
                Applications = applicationVersions,
                Assemblies = new AssemblyDetails
                {
                    SenseNet = asmSn,
                    Plugins = plugins,
                    GAC = asmInGac,
                    Other = asms,
                    Dynamic = asmDyn,
                },
                InstalledPackages = packages
            });
        }
Esempio n. 2
0
        private static RepositoryVersionInfo Create(IEnumerable <ComponentInfo> componentVersions, IEnumerable <Package> packages, bool databaseAvailable = true)
        {
            var asms = TypeHandler.GetAssemblyInfo();

            var sncr    = Assembly.GetExecutingAssembly();
            var binPath = IO.Path.GetDirectoryName(TypeHandler.GetCodeBase(sncr));

            var asmDyn = asms.Where(a => a.IsDynamic).ToArray();

            asms = asms.Except(asmDyn).ToArray();
            var asmInBin = asms.Where(a => a.CodeBase.StartsWith(binPath)).ToArray();

            asms = asms.Except(asmInBin).ToArray();
            var asmInGac = asms.Where(a => a.CodeBase.Contains("\\GAC")).ToArray();

            asms = asms.Except(asmInGac).ToArray();

            var asmSn   = asmInBin.Where(a => a.Name.StartsWith("SenseNet.")).ToArray();
            var plugins = asmInBin.Except(asmSn).ToArray();

            return(new RepositoryVersionInfo
            {
                Components = componentVersions,
                Assemblies = new AssemblyDetails
                {
                    SenseNet = asmSn,
                    Plugins = plugins,
                    GAC = asmInGac,
                    Other = asms,
                    Dynamic = asmDyn,
                },
                InstalledPackages = packages,
                DatabaseAvailable = databaseAvailable
            });
        }
        internal static RepositoryVersionInfo Create(IEnumerable <ComponentInfo> componentVersions, IEnumerable <Package> packages, bool databaseAvailable = true)
        {
            var asms = TypeHandler.GetAssemblyInfo();

            var sncr    = Assembly.GetExecutingAssembly();
            var binPath = IO.Path.GetDirectoryName(TypeHandler.GetCodeBase(sncr));

            var asmDyn = asms.Where(a => a.IsDynamic).ToArray();

            asms = asms.Except(asmDyn).ToArray();
            var asmInBin = asms.Where(a => a.CodeBase.StartsWith(binPath ??
                                                                 throw new InvalidOperationException($"Parameter cannot be null."))).ToArray();

            asms = asms.Except(asmInBin).ToArray();
            var asmInGac = asms.Where(a => a.CodeBase.Contains("\\GAC")).ToArray();

            asms = asms.Except(asmInGac).ToArray();

            var asmSn   = asmInBin.Where(a => a.Name.StartsWith("SenseNet.")).ToArray();
            var plugins = asmInBin.Except(asmSn).ToArray();

            var components = componentVersions.Select(c => new SnComponentDescriptor(c)).ToArray();

            var pkgArray = packages?.ToArray();

            if (pkgArray != null)
            {
                foreach (var package in pkgArray)
                {
                    package.Manifest = null;
                }
            }

            return(new RepositoryVersionInfo
            {
                Components = components,
                Assemblies = new AssemblyDetails
                {
                    SenseNet = asmSn,
                    Plugins = plugins,
                    GAC = asmInGac,
                    Other = asms,
                    Dynamic = asmDyn,
                },
                InstalledPackages = pkgArray,
                DatabaseAvailable = databaseAvailable
            });
        }