private void _clientFilterAddButton_Click(object sender, RoutedEventArgs e) { if (_clientFiltersConditionTextBox.Text == "") return; try { var connectionType = (ConnectionType)_clientFiltersConnectionTypeComboBox.SelectedItem; var uriCondition = new UriCondition(_clientFiltersConditionTextBox.Text); string proxyUri = null; string option = null; if (!string.IsNullOrWhiteSpace(_clientFiltersProxyUriTextBox.Text)) { proxyUri = _clientFiltersProxyUriTextBox.Text; if (!Regex.IsMatch(proxyUri, @"^(.+?):(.+)$")) return; } if (connectionType == ConnectionType.Socks5Proxy || connectionType == ConnectionType.HttpProxy) { if (proxyUri == null) return; } if (!string.IsNullOrWhiteSpace(_clientFiltersOptionTextBox.Text)) { option = _clientFiltersOptionTextBox.Text; } var connectionFilter = new ConnectionFilter(connectionType, proxyUri, uriCondition, option); if (_clientFilters.Any(n => n == connectionFilter)) return; _clientFilters.Add(connectionFilter); } catch (Exception) { } _clientFiltersListViewUpdate(); }
private void _clientFilterEditButton_Click(object sender, RoutedEventArgs e) { if (_clientFiltersConditionTextBox.Text == "") return; int selectIndex = _clientFiltersListView.SelectedIndex; if (selectIndex == -1) return; try { var connectionType = (ConnectionType)_clientFiltersConnectionTypeComboBox.SelectedItem; string proxyUri = null; var uriCondition = new UriCondition(_clientFiltersConditionTextBox.Text); string option = null; if (!string.IsNullOrWhiteSpace(_clientFiltersProxyUriTextBox.Text)) { proxyUri = _clientFiltersProxyUriTextBox.Text; } if (connectionType == ConnectionType.Socks5Proxy || connectionType == ConnectionType.HttpProxy) { if (proxyUri == null) return; } if (!string.IsNullOrWhiteSpace(_clientFiltersOptionTextBox.Text)) { option = _clientFiltersOptionTextBox.Text; } var connectionFilter = new ConnectionFilter(connectionType, proxyUri, uriCondition, option); if (_clientFilters.Any(n => n == connectionFilter)) return; _clientFilters.Set(selectIndex, connectionFilter); _clientFiltersListView.SelectedIndex = selectIndex; } catch (Exception) { return; } _clientFiltersListViewUpdate(); }
private void _clientFiltersListViewPasteMenuItem_Click(object sender, RoutedEventArgs e) { var regex = new Regex("^(.+?) \"(.*?)\" \"(.+)\"$"); foreach (var line in Clipboard.GetText().Split('\r', '\n')) { try { var match = regex.Match(line); if (!match.Success) continue; var connectionType = (ConnectionType)Enum.Parse(typeof(ConnectionType), match.Groups[1].Value); var uriCondition = new UriCondition(match.Groups[3].Value); string proxyUri = null; if (!string.IsNullOrWhiteSpace(match.Groups[2].Value)) { proxyUri = match.Groups[2].Value; if (!Regex.IsMatch(proxyUri, @"^(.+?):(.+)$")) continue; } if (connectionType == ConnectionType.Socks5Proxy || connectionType == ConnectionType.HttpProxy) { if (proxyUri == null) return; } var connectionFilter = new ConnectionFilter(connectionType, proxyUri, uriCondition, null); if (_clientFilters.Any(n => n == connectionFilter)) continue; _clientFilters.Add(connectionFilter); } catch (Exception) { } } _clientFiltersListViewUpdate(); }