public DnsController(IKeyManagerFactory factory, ILogger <KeyController> logger, Settings settings) { _manager = factory.BuildDnsManager(); _logger = logger; _orkId = settings.Instance.Username; var cln = new SimulatorClient(settings.Endpoints.Simulator.Api, _orkId, settings.Instance.GetPrivateKey()); _orkManager = new SimulatorOrkManager(_orkId, cln); }
public MainAppContext(IAppSetting appSetting, IDnsManager dnsManager, IFileUpdater fileUpdater) { // Get config settings. _appSetting = appSetting; // Populate fields. _dnsManager = dnsManager; _fileUpdater = fileUpdater; // Subscribed to the application's exit event. Application.ApplicationExit += OnApplicationExit; // Make sure the 'Data' folder exists. if (!Directory.Exists(_appSetting.StorageInfo.Path)) { Directory.CreateDirectory(_appSetting.StorageInfo.Path); } // Construct the notification's context menu. var contextMenu = new ContextMenuStrip(); // Create menus for DNS entries. var tempUpdateDNSMenus = new List <ToolStripItem>(); foreach (Source source in _appSetting.Sources) { tempUpdateDNSMenus.Add(MenuBuilder.CreateMenu(source.Name).HookClickEvent(OnSetDNSMenuClicked)); } _updateDNSMenus = new ToolStripMenuItem[tempUpdateDNSMenus.Count]; tempUpdateDNSMenus.CopyTo(_updateDNSMenus); // Other essential menus. contextMenu.Items.AddRange(new ToolStripItem[] { MenuBuilder.CreateMenu($"DNS Resolver v{Application.ProductVersion}"), MenuBuilder.CreateMenu("Querying host file data..."), MenuBuilder.CreateMenu("DNS").AddManyChildMenu(_updateDNSMenus), MenuBuilder.CreateSeparator(), MenuBuilder.CreateMenu("Open Host File...").HookClickEvent(OnOpenHostFileMenuClicked), MenuBuilder.CreateSeparator(), MenuBuilder.CreateMenu("Reset DNS").HookClickEvent(OnDNSResetMenuClicked), MenuBuilder.CreateMenu("Clear Host File").HookClickEvent(OnHostFileResetMenuClicked), MenuBuilder.CreateSeparator(), MenuBuilder.CreateMenu("Exit").HookClickEvent(OnExitMenuClicked), }); contextMenu.Renderer = new CustomToolStripMenuRenderer(); // Make sure that the menu checked condition is refreshed everytime it is opening. contextMenu.Opening += OnNotifyIconContextMenuOpening; // Finally, the notification icon itself. _notifyIcon = new NotifyIcon { Icon = Resources.AppIcon, Text = Application.ProductName, Visible = true, ContextMenuStrip = contextMenu, BalloonTipIcon = ToolTipIcon.Info, BalloonTipTitle = Application.ProductName }; // Update the notify icon's text. UpdateNotifyIconText(); // Create menus for Host file data entries. _hostFileProgress = new Progress <ToolStripMenuItem[]>(HostFileMenusProgressHandler); Task.Run(() => ConstructHostFileContextMenu()); }