OpenBve.formMain.UninstallPackage C# (CSharp) Method

UninstallPackage() private method

This method should be called to uninstall a package
private UninstallPackage ( Package packageToUninstall, List &Packages ) : void
packageToUninstall Package
Packages List
return void
		internal void UninstallPackage(Package packageToUninstall, ref List<Package> Packages)
		{

			string uninstallResults = "";
			List<Package> brokenDependancies = Database.CheckUninstallDependancies(packageToUninstall.Dependancies);
			if (brokenDependancies.Count != 0)
			{
				PopulatePackageList(brokenDependancies, dataGridViewBrokenDependancies, false, false, false);
				labelMissingDependanciesText1.Text = Interface.GetInterfaceString("packages_uninstall_broken");
				HidePanels();
				panelDependancyError.Show();
			}
			if (Manipulation.UninstallPackage(packageToUninstall, currentDatabaseFolder, ref uninstallResults))
			{
				Packages.Remove(packageToUninstall);
				switch (packageToUninstall.PackageType)
				{
					case PackageType.Other:
						DatabaseFunctions.cleanDirectory(Program.FileSystem.OtherInstallationDirectory, ref uninstallResults);
						break;
					case PackageType.Route:
						DatabaseFunctions.cleanDirectory(Program.FileSystem.RouteInstallationDirectory, ref uninstallResults);
						break;
					case PackageType.Train:
						DatabaseFunctions.cleanDirectory(Program.FileSystem.TrainInstallationDirectory, ref uninstallResults);
						break;
				}
				labelUninstallSuccess.Text = Interface.GetInterfaceString("packages_uninstall_success");
				labelUninstallSuccessHeader.Text = Interface.GetInterfaceString("packages_uninstall_success_header");
				textBoxUninstallResult.Text = uninstallResults;
				HidePanels();
				panelUninstallResult.Show();
			}
			else
			{
				labelUninstallSuccess.Text = Interface.GetInterfaceString("packages_uninstall_success");
				labelUninstallSuccessHeader.Text = Interface.GetInterfaceString("packages_uninstall_success_header");
				if (uninstallResults == null)
				{
					//Uninstall requires an XML list of files, and these were missing.......
					textBoxUninstallResult.Text = Interface.GetInterfaceString("packages_uninstall_missing_xml");
					currentPackage = packageToUninstall;
					RemoveFromDatabase = false;
				}
				else
				{
					//Something went wrong in the uninstallation process, so show the log
					//TODO: This doesn't log anything other than a list of files at the minute
					textBoxUninstallResult.Text = uninstallResults;
				}
			}
			HidePanels();
			panelUninstallResult.Show();
		}
formMain