Esempio n. 1
0
        async private void sendSettings()
        {
            if (InvokeRequired)
            {
                Invoke((MethodInvoker) delegate { sendSettings(); });
                return;
            }

            var settings = new Service.Event("settings");

            settings.data                  = new Service.EventData();
            settings.data.enabled          = Properties.Settings.Default.Enabled;
            settings.data.configuration    = Properties.Settings.Default.Configuration;
            settings.data.reportDeviceName = Properties.Settings.Default.ReportDeviceName;
            settings.data.checkUpdates     = Properties.Settings.Default.CheckUpdates;
            settings.data.updateChannel    = Properties.Settings.Default.UpdateChannel;
            try
            {
                await service.SendAsync(settings).ConfigureAwait(false);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Service broadcast error: {0}", (object)ex.Message);
                MessageBox.Show("An error append while trying to communicate with NextDNS Windows service.",
                                "Service Communication Error",
                                MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Esempio n. 2
0
        private void Service_EventReceived(object sender, Service.Event e)
        {
            if (InvokeRequired)
            {
                Invoke((MethodInvoker) delegate { Service_EventReceived(sender, e); });
                return;
            }
            switch (e.name)
            {
            case "open":
                // Called when a new instance of the app is started while an instance is already running.
                Show();
                WindowState = FormWindowState.Normal;
                break;

            case "status":
                Debug.WriteLine("state {0}", (object)e.data.state);
                State = e.data.state;
                switch (State)
                {
                case StateStopped:
                    toggle.Text = "Enable";
                    break;

                case StateStopping:
                    toggle.Text = "Disonnecting...";
                    break;

                case StateStarting:
                case StateReasserting:
                    toggle.Text = "Connecting...";
                    break;

                case StateStarted:
                    toggle.Text = "Disable";
                    break;
                }
                status.Text = State;
                if (e.data.error != null && e.data.error != "")
                {
                    MessageBox.Show(e.data.error, "NextDNS Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                break;

            default:
                break;
            }
        }
Esempio n. 3
0
        async private void quit_Click(object sender, EventArgs e)
        {
            if (State != StateStopped)
            {
                try
                {
                    // Disconnect set flush settings on exit
                    var settings = new Service.Event("settings");
                    settings.data         = new Service.EventData();
                    settings.data.enabled = false;
                    await service.SendAsync(settings).ConfigureAwait(false);
                }
                catch (Exception)
                {
                    // Silient failure on exit
                }
            }

            Environment.Exit(1);
        }