Ejemplo n.º 1
0
        static public void AddUpdateLocalPackage(LocalPackageData pkg)
        {
            LocalPackageData currentpkg = null;

            foreach (LocalPackageData p in LocalPackageDataList)
            {
                if (p.Version == pkg.Version && p.PackageID.ToLower() == pkg.PackageID.ToLower())
                {
                    currentpkg = p;
                    break;
                }
            }
            bool AddNeeded = false;

            if (currentpkg == null)
            {
                AddNeeded  = true;
                currentpkg = new LocalPackageData();
            }

            currentpkg.InstallStatus = pkg.InstallStatus;
            currentpkg.LastChecked   = pkg.LastChecked;
            currentpkg.PackageID     = pkg.PackageID;
            if (!(pkg.PKGRecieptFilename == null && currentpkg.PKGRecieptFilename != null))
            {
                currentpkg.PKGRecieptFilename = pkg.PKGRecieptFilename;
            }
            currentpkg.Version          = pkg.Version;
            currentpkg.ServerHasPackage = pkg.ServerHasPackage;
            if (AddNeeded == true)
            {
                LocalPackageDataList.Add(currentpkg);
            }
        }
Ejemplo n.º 2
0
        static public LocalPackageData FindLocalPackageFromListLatest(string PackageID)
        {
            if (LocalPackageDataList == null)
            {
                LocalPackageDataList = new List <LocalPackageData>();
            }
            List <LocalPackageData> l      = FindLocalPackageFromList(PackageID);
            LocalPackageData        latest = null;

            foreach (LocalPackageData ll in l)
            {
                if (latest == null)
                {
                    latest = ll;
                }
                else
                {
                    if (ll.Version > latest.Version)
                    {
                        latest = ll;
                    }
                }
            }
            return(latest);
        }
Ejemplo n.º 3
0
        static public void RemovePackage(PackagesToInstall Package, bool ForceRemove = false)
        {
            if (LocalPackages == null)
            {
                return;
            }
            string PackagesFolder = SystemInfos.ProgramData + "Packages\\";

            if (Directory.Exists(PackagesFolder) == false)
            {
                Directory.CreateDirectory(PackagesFolder);
            }

            PackagesToInstall pkg = null;

            foreach (PackagesToInstall pp in LocalPackages)
            {
                if (Package == pp)
                {
                    pkg = pp;
                    break;
                }
            }
            if (pkg == null)
            {
                return;
            }

            LocalPackageData rmlpkg = null;

            foreach (LocalPackageData lpkg in LocalPackageDataList)
            {
                if (lpkg.PackageID == pkg.PackageID && lpkg.Version == pkg.Version)
                {
                    rmlpkg = lpkg;
                    break;
                }
            }

            if (ForceRemove == false)
            {
                if (rmlpkg != null)
                {
                    if (rmlpkg.PKGRecieptFilename != null)
                    {
                        FoxEventLog.VerboseWriteEventLog("Not removing Package: " + pkg.PackageID + " V" + pkg.Version.ToString() + ". Reciept file is registred.", EventLogEntryType.Warning);
                        if (pkg.Filename != null)
                        {
                            if (File.Exists(PackagesFolder + pkg.Filename) == true)
                            {
                                CommonUtilities.SpecialDeleteFile(PackagesFolder + pkg.Filename);
                            }
                            pkg.Filename = null;
                        }
                        rmlpkg.ServerHasPackage = false;
                        return;
                    }
                }
            }

            if (pkg.MetaFilename != null)
            {
                if (File.Exists(PackagesFolder + pkg.MetaFilename) == true)
                {
                    CommonUtilities.SpecialDeleteFile(PackagesFolder + pkg.MetaFilename);
                }
            }
            if (pkg.Filename != null)
            {
                if (File.Exists(PackagesFolder + pkg.Filename) == true)
                {
                    CommonUtilities.SpecialDeleteFile(PackagesFolder + pkg.Filename);
                }
            }
            LocalPackages.Remove(pkg);
            WritePackageList();

            if (rmlpkg != null)
            {
                if (rmlpkg.PKGRecieptFilename != null)
                {
                    CommonUtilities.SpecialDeleteFile(PackagesFolder + rmlpkg.PKGRecieptFilename);
                    CommonUtilities.SpecialDeleteFile(PackagesFolder + rmlpkg.PKGRecieptFilename + ".sign");
                }
                LocalPackageDataList.Remove(rmlpkg);
                WritePackageDataList();
            }
        }