public bool Uninstall()
{
Package localPkg = Loader.LocalPackages.Where(a => a.Name == this.PkgRequest.asset_name.ToString()).First();
if (localPkg.LoadedAssemblies.Any())
{
var resAssem =
MessageBox.Show(string.Format(Resources.MessageNeedToRestart,
ProductName),
Resources.UninstallingPackageMessageBoxTitle,
MessageBoxButton.OKCancel,
MessageBoxImage.Exclamation);
if (resAssem == MessageBoxResult.Cancel) return false;
}
var res = MessageBox.Show(String.Format(Resources.MessageConfirmToUninstallPackage, localPkg.Name),
Resources.UninstallingPackageMessageBoxTitle,
MessageBoxButton.YesNo, MessageBoxImage.Question);
if (res == MessageBoxResult.No)
{
return false;
}
try
{
var dynModel = Model;
Application.Current.Dispatcher.Invoke((Action)(() =>
{
localPkg.UninstallCore(dynModel.CustomNodeManager, Loader, dynModel.PreferenceSettings);
}));
return true;
}
catch (Exception)
{
MessageBox.Show(string.Format(Resources.MessageFailedToUninstall,
ProductName),
Resources.UninstallFailureMessageBoxTitle,
MessageBoxButton.OK, MessageBoxImage.Error);
return false;
}
}