public static void UpdateFirewallRules() { try { var fileName = Paths.AppRootPath("FirewallRules.exe"); var startInfo = new ProcessStartInfo { FileName = fileName, //Arguments = $"{Directory.GetCurrentDirectory()} update miner_plugins", Arguments = $"{Paths.Root} update miner_plugins", Verb = "runas", UseShellExecute = true, CreateNoWindow = true }; startInfo.WindowStyle = ProcessWindowStyle.Hidden; // used for hidden window using (var setFirewallRulesProcess = new Process { StartInfo = startInfo }) { setFirewallRulesProcess.Start(); setFirewallRulesProcess?.WaitForExit(10 * 1000); if (setFirewallRulesProcess?.ExitCode != 0) { Logger.Info("NICEHASH", "setFirewallRulesProcess returned error code: " + setFirewallRulesProcess.ExitCode); } else { Logger.Info("NICEHASH", "setFirewallRulesProcess all OK"); var installedPlugins = MinerPluginsManager.GetPluginUUIDsAndVersionsList(); _pluginsUUIDsWithVersions = installedPlugins; InternalConfigs.WriteFileSettings(_firewallRulesAddedFilePath, _pluginsUUIDsWithVersions); } } } catch (Exception ex) { Logger.Error("NICEHASH", $"SetFirewallRules error: {ex.Message}"); } }
public static bool IsFirewallRulesOutdated() { var installedPlugins = MinerPluginsManager.GetPluginUUIDsAndVersionsList(); return(installedPlugins.Except(_pluginsUUIDsWithVersions).Count() > 0); }