public void AddNewServer() { if (!Flush()) { return; } if (!servers.AddServer(Misc.Utils.Config2String(config), "")) { MessageBox.Show(I18N.DuplicateServer); } var uid = servers.GetAllServersOrderByIndex() ?.FirstOrDefault(s => { try { var o = ParseConfigString(s.GetConfiger()?.GetConfig()); return(JObject.DeepEquals(config, o)); } catch { } return(false); }) ?.GetCoreStates() ?.GetUid(); LoadConfigByUid(uid); }
private void FormBatchModifyServerInfo_Shown(object sender, EventArgs e) { this.cboxMark.Items.Clear(); foreach (var mark in servers.GetMarkList()) { this.cboxMark.Items.Add(mark); } var firstCtrl = servers .GetAllServersOrderByIndex() .Where(s => s.GetCoreStates().IsSelected()) .FirstOrDefault(); if (firstCtrl == null) { return; } var first = firstCtrl.GetCoreStates().GetAllRawCoreInfo(); this.cboxInMode.SelectedIndex = first.customInbType; this.tboxInIP.Text = first.inbIp; this.tboxInPort.Text = first.inbPort.ToString(); this.cboxMark.Text = first.customMark; this.cboxAutorun.SelectedIndex = first.isAutoRun ? 0 : 1; this.cboxImport.SelectedIndex = first.isInjectImport ? 0 : 1; this.cboxIsInjectSkipCNSite.SelectedIndex = first.isInjectSkipCNSite ? 0 : 1; }
void ClearSelectedServersSpeedTestResults() { var servs = servers .GetAllServersOrderByIndex() .Where(s => s.GetCoreStates().IsSelected()) .ToList(); foreach (var serv in servs) { var cst = serv.GetCoreStates(); cst.SetSpeedTestResult(0); } }
void SetServerItemsIndex(double index) { servers.GetAllServersOrderByIndex() .Where(s => s.GetCoreStates().IsSelected()) .Select(s => { s.GetCoreStates().SetIndex(index); return(true); }) .ToList(); // force linq to execute RemoveAllControlsAndRefreshFlyPanel(); }
void ClearSelectedServersStatRecord() { var servs = servers .GetAllServersOrderByIndex() .Where(s => s.GetCoreStates().IsSelected()) .ToList(); foreach (var serv in servs) { var cst = serv.GetCoreStates(); cst.SetDownlinkTotal(0); cst.SetUplinkTotal(0); } }
void RefreshServerList() { ClearServerList(); var summaryList = new List <string>(); var allServers = servers.GetAllServersOrderByIndex(); foreach (var serv in allServers) { var summary = serv.GetCoreStates().GetTitle(); var config = serv.GetConfiger().GetConfig(); summaryList.Add(summary); this.serverList.Add(config); } VgcApis.Misc.UI.RunInUiThread(cboxServList, () => { cboxServList.Items.Clear(); cboxServList.Items.AddRange(summaryList.ToArray()); Misc.UI.ResetComboBoxDropdownMenuWidth(cboxServList); if (summaryList.Count <= 0) { cboxServList.SelectedIndex = -1; return; } var oldIndex = servIndex; servIndex = -1; cboxServList.SelectedIndex = VgcApis.Misc.Utils.Clamp( oldIndex, 0, summaryList.Count); }); }
public string GetUid() { bool refresh = false; lock (genUidLocker) { if (string.IsNullOrEmpty(coreInfo.uid)) { var uidList = servers.GetAllServersOrderByIndex() .Select(s => s.GetCoreStates().GetRawUid()) .ToList(); string newUid; do { newUid = VgcApis.Misc.Utils.RandomHex(16); } while (uidList.Contains(newUid)); coreInfo.uid = newUid; refresh = true; } } if (refresh) { GetParent().InvokeEventOnPropertyChange(); } return(coreInfo.uid); }
void ServerMenuItemsUpdateWorker() { var loadServMiList = new List <ToolStripMenuItem>(); var replaceServMiList = new List <ToolStripMenuItem>(); try { var serverList = servers.GetAllServersOrderByIndex(); for (int i = 0; i < serverList.Count; i++) { var coreServ = serverList[i]; var coreState = coreServ.GetCoreStates(); var name = string.Format( "{0}.{1}", coreState.GetIndex(), coreState.GetLongName()); var org = coreServ.GetConfiger().GetConfig(); loadServMiList.Add(GenMenuItemLoad(name, org)); replaceServMiList.Add(GenMenuItemReplace(name, org)); } } catch { return; } VgcApis.Misc.UI.Invoke( () => ReplaceOldMenus(loadServMiList, replaceServMiList)); }
void SelectCurPageWhere(Func <Views.UserControls.ServerUI, bool> condiction) { var panel = GetFlyPanel(); var configs = panel.GetFilteredList().Select(s => s.GetConfiger().GetConfig()); // clear all not in current filtered list servers.GetAllServersOrderByIndex() .Where(s => !configs.Contains(s.GetConfiger().GetConfig())) .Select(s => { s.GetCoreStates().SetIsSelected(false); return(true); }) .ToList(); panel.LoopThroughAllServerUI(s => { s.SetSelected(condiction(s)); }); }
void UpdateServerTotalNow() { VgcApis.Misc.UI.RunInUiThreadIgnoreError( lbTotal, () => { var alias = tboxAlias.Text; var coreNum = servers.GetAllServersOrderByIndex() .Select(s => s.GetCoreStates()) .Where(cfg => cfg.GetMark() == alias) .Count(); lbTotal.Text = $"{I18N.TotalNum}{coreNum}"; lbTotal.ForeColor = coreNum == 0 ? Color.Red : Color.DarkGray; }); }
public List <VgcApis.Interfaces.ICoreServCtrl> GetFilteredList() { var list = servers.GetAllServersOrderByIndex(); var keyword = searchKeywords?.Replace(@" ", ""); if (string.IsNullOrEmpty(keyword)) { return(list.ToList()); } return(list .Where(serv => serv.GetCoreStates().GetterInfoForSearch( infos => infos.Any( info => VgcApis.Misc.Utils.PartialMatchCi(info, keyword)))) .ToList()); }
List <string[]> CollectServNameAndUid() { var serverList = servers.GetAllServersOrderByIndex(); var servInfos = new List <string[]>(); for (int i = 0; i < serverList.Count; i++) { var coreServ = serverList[i]; var coreState = coreServ.GetCoreStates(); var name = string.Format( "{0}.{1}", coreState.GetIndex(), coreState.GetLongName()); var uid = coreServ.GetCoreStates().GetUid(); servInfos.Add(new string[] { name, uid }); } return(servInfos); }
public void ExportAllServersToTextFile() { if (this.servers.IsEmpty()) { MessageBox.Show(I18N.NoServerAvailable); return; } var serverList = servers.GetAllServersOrderByIndex(); string s = string.Empty; foreach (var server in serverList) { var vlink = Misc.Utils.AddLinkPrefix( Misc.Utils.Base64Encode(server.GetConfiger().GetConfig()), VgcApis.Models.Datas.Enums.LinkTypes.v2cfg); s += vlink + System.Environment.NewLine + System.Environment.NewLine; } VgcApis.Misc.UI.SaveToFile(VgcApis.Models.Consts.Files.TxtExt, s); }
Dictionary <string, int> CountServMarks() { var r = new Dictionary <string, int>(); var servs = servers.GetAllServersOrderByIndex(); var marks = servs.Select(serv => serv.GetCoreStates().GetMark()).ToList(); foreach (var mark in marks) { if (string.IsNullOrEmpty(mark)) { continue; } if (!r.ContainsKey(mark)) { r[mark] = 0; } r[mark]++; } return(r); }
void UpdateServerMenus() { var serverList = servers.GetAllServersOrderByIndex(); var loadServMiList = new List <ToolStripMenuItem>(); var replaceServMiList = new List <ToolStripMenuItem>(); for (int i = 0; i < serverList.Count; i++) { var coreServ = serverList[i]; var coreState = coreServ.GetCoreStates(); var name = string.Format( "{0}.{1}", coreState.GetIndex(), coreState.GetLongName()); var org = coreServ.GetConfiger().GetConfig(); loadServMiList.Add(GenMenuItemLoad(name, org)); replaceServMiList.Add(GenMenuItemReplace(name, org)); } VgcApis.Misc.UI.RunInUiThread( formConfiger, () => { try { ReplaceOldMenus(loadServMiList, replaceServMiList); } catch { // Do not hurt me. } }); }
Dictionary <string, int> CountServMarks() { var r = new Dictionary <string, int>(); var servs = servers.GetAllServersOrderByIndex(); foreach (var serv in servs) { var cst = serv.GetCoreStates(); var mark = cst.GetMark(); if (string.IsNullOrEmpty(mark)) { continue; } if (!r.ContainsKey(mark)) { r[mark] = 0; } r[mark]++; } return(r); }