private MenuControlController()
        {
            Configuration.Load();
            CreateMenu();

            mNotifyIcon             = new NotifyIcon();
            mNotifyIcon.Icon        = Resources.icon;
            mNotifyIcon.Visible     = true;
            mNotifyIcon.ContextMenu = mContextMenu;

            MainProcessController.KillAllKcptunProcess();

            mProcessCtler = MainProcessController.GetInstance();
            mProcessCtler.ProcessLogReceivedHandler += new EventHandler(_ProcessLogReceived);

            if (!mProcessCtler.CheckKcptunExists())
            {
                Configuration.EnabledServerList.Clear();
                Configuration.UpdateEnabledServerList();

                ClientSelectForm dlg = new ClientSelectForm();
                dlg.ShowDialog();
            }

            foreach (Server server in Configuration.Servers)
            {
                if (Configuration.EnabledServerList.Contains(server.Name))
                {
                    mProcessCtler.Start(server);
                }
            }
            LoadServersMenuItem();
        }
        protected override void SelectClientAction()
        {
            ClientSelectForm form = new ClientSelectForm(this);

            if (form.ShowDialog(this) == DialogResult.OK)
            {
                _entity.NombreCliente = ((ClienteInfo)form.Selected).Nombre;
            }
        }
        private void Cliente_BT_Click(object sender, EventArgs e)
        {
            ClientSelectForm form = new ClientSelectForm(this);

            if (form.ShowDialog(this) == DialogResult.OK)
            {
                ClienteInfo cliente = ((ClienteInfo)form.Selected);
                _entity.OidCliente    = cliente.Oid;
                _entity.CodigoCliente = cliente.Codigo;
                _entity.NombreCliente = cliente.Nombre;
            }
        }
        private void Matricular_B_Click(object sender, EventArgs e)
        {
            if (_entity.FechaCaducidad < DateTime.Today)
            {
                MessageBox.Show(Resources.Messages.CONVOCATORIA_FINALIZADA);
                return;
            }

            AlumnoSelectForm formAlumno = new AlumnoSelectForm(this);

            if (formAlumno.ShowDialog() == DialogResult.OK)
            {
                AlumnoInfo alumno = formAlumno.Selected as AlumnoInfo;

                if (_entity.Alumnos.GetItemByAlumno(alumno.Oid) != null)
                {
                    MessageBox.Show(Resources.Messages.ALUMNO_YA_MATRICULADO);
                    return;
                }

                AlumnoClienteList aclientes = AlumnoClienteList.GetListByAlumno(alumno.Oid, false);

                if (aclientes.Count == 0)
                {
                    MessageBox.Show(Resources.Messages.NO_CLIENT_ASSOCIATED);
                    return;
                }
                else if (aclientes.Count == 1)
                {
                    _entity.Alumnos.NewItem(_entity, aclientes[0]);
                }
                else
                {
                    List <string> oids = new List <string>();
                    foreach (AlumnoClienteInfo item in aclientes)
                    {
                        oids.Add(item.OidCliente.ToString());
                    }

                    ClienteList      clientes     = ClienteList.GetListByList(oids, false);
                    ClientSelectForm formClientes = new ClientSelectForm(this, clientes);

                    if (formClientes.ShowDialog() == DialogResult.OK)
                    {
                        ClienteInfo cliente = formClientes.Selected as ClienteInfo;
                        _entity.Alumnos.NewItem(_entity, alumno, cliente);
                    }
                }
            }
        }
        private MenuControlController()
        {
            Configuration.Load();
            CreateMenu();

            _notifyIcon = new NotifyIcon
            {
                Icon        = Resources.icon,
                Visible     = true,
                ContextMenu = _contextMenu
            };
            _notifyIcon.BalloonTipClicked += (sender, e) =>
            {
                UpdateController updateCtllr = UpdateController.GetInstance();
                if (updateCtllr.LatestRelease != null)
                {
                    updateCtllr.StartUpdating(updateCtllr.LatestRelease);
                }
            };

            MainProcessController.KillAllKcptunProcess();

            _processCtler = MainProcessController.GetInstance();
            _processCtler.ProcessLogReceivedHandler += mProcessCtler_ProcessLogReceived;

            if (!_processCtler.CheckKcptunExists())
            {
                Configuration.EnabledServerList.Clear();
                Configuration.UpdateEnabledServerList();

                ClientSelectForm dlg = new ClientSelectForm();
                dlg.ShowDialog();
            }

            foreach (Server server in Configuration.Servers)
            {
                if (Configuration.EnabledServerList.Contains(server.Name))
                {
                    _processCtler.Start(server);
                }
            }
            LoadServersMenuItem();
        }
Example #6
0
        public bool Start(Server server)
        {
            if (Processes.ContainsKey(server.Name))
            {
                return(true);
            }

            if (!File.Exists(KcptunClientFilePath))
            {
                if (System.Windows.Forms.MessageBox.Show("未找到Kcptun客户端,是否查找?", "kcptun", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    ClientSelectForm csForm = new ClientSelectForm();
                    csForm.ShowDialog();
                }
                return(false);
            }

            Process mProcess = new Process();

            mProcess.StartInfo.FileName  = KcptunClientFilePath;
            mProcess.StartInfo.Arguments = server.ToString();

            mProcess.StartInfo.UseShellExecute        = false;
            mProcess.StartInfo.CreateNoWindow         = true;
            mProcess.StartInfo.RedirectStandardError  = true;
            mProcess.StartInfo.RedirectStandardInput  = true;
            mProcess.StartInfo.RedirectStandardOutput = true;

            mProcess.ErrorDataReceived  += (sender, e) => { ProcessLogReceived(mProcess, server, e.Data); };
            mProcess.OutputDataReceived += (sender, e) => { ProcessLogReceived(mProcess, server, e.Data); };

            Processes.Add(server.Name, mProcess);

            mProcess.Start();
            mProcess.BeginErrorReadLine();
            mProcess.BeginOutputReadLine();

            return(true);
        }