예제 #1
0
        private void LoadAllModuleConfig()
        {
            MultiTaskingRunner runner = new MultiTaskingRunner();

            ModuleConfigs = new Dictionary <string, UDMsOfSchool>();
            foreach (ConnectionHelper conn in Connections)
            {
                string name = Program.GlobalSchoolCache[conn.UID].Title;
                runner.AddTask(string.Format("{0}({1})", name, conn.UID), (x) =>
                {
                    LoadModuleConfig(x as ConnectionHelper);
                }, conn, new System.Threading.CancellationTokenSource());
            }
            runner.ExecuteTasks();
        }
예제 #2
0
        private void Search(Action <List <string>, string, object> patternMatcher)
        {
            MultiTaskingRunner runner  = new MultiTaskingRunner();
            List <string>      matchs  = new List <string>();
            string             pattern = txtPattern.Text;

            foreach (string uid in Program.MainPanel.SelectedSource)
            {
                string           name = Program.GlobalSchoolCache[uid].Title;
                ConnectionHelper ch   = ConnectionHelper.GetConnection(uid);
                runner.AddTask(string.Format("{0}({1})", name, uid), (x) =>
                {
                    patternMatcher(matchs, pattern, x);
                }, new object[] { uid, ch }, new CancellationTokenSource());
            }

            runner.ExecuteTasks();
            Program.MainPanel.AddToTemp(matchs);
            DialogResult = DialogResult.OK;
        }
예제 #3
0
        private void btnCheckUpdate_Click(object sender, EventArgs e)
        {
            IEnumerable <UDMGridRow> udms = GetSelectedUDM();

            MultiTaskingRunner runner = new MultiTaskingRunner();

            foreach (UDMGridRow udm in udms)
            {
                runner.AddTask(udm.Name, x =>
                {
                    UDMGridRow s = x as UDMGridRow;
                    CheckUDMNewVersion(s);
                }, udm, new System.Threading.CancellationTokenSource());
            }

            runner.AllTaskCompleted += delegate
            {
            };

            runner.ExecuteTasks();
        }
예제 #4
0
        private void btnDelete_Click(object sender, EventArgs e)
        {
            if (dgvModules.SelectedRows.Count <= 0)
            {
                return;
            }

            DialogResult dr = MessageBox.Show("確定要刪除選擇的模組?", "ischool", MessageBoxButtons.YesNo);

            if (dr == System.Windows.Forms.DialogResult.No)
            {
                return;
            }

            MultiTaskingRunner runner = new MultiTaskingRunner();
            ModuleRow          mr     = dgvModules.SelectedRows[0].DataBoundItem as ModuleRow;
            string             modUrl = mr.Url;

            foreach (ConnectionHelper conn in Connections)
            {
                string name = Program.GlobalSchoolCache[conn.UID].Title;
                runner.AddTask(string.Format("{0}({1})", name, conn.UID), (x) =>
                {
                    object[] obj       = x as object[];
                    ConnectionHelper c = obj[0] as ConnectionHelper;
                    string xurl        = (string)obj[1];
                    RemoveDesktopModule(c, xurl);
                }, new object[] { conn, modUrl }, new System.Threading.CancellationTokenSource());
            }
            runner.ExecuteTasks();

            try
            {
                InitConnections();
                LoadAllModuleConfig();
                GroupByToDataGrid();
            }
            catch { Close(); } //爆了就關吧。
        }