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); } }
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); }
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(); } }