private void btnApply_Click(object sender, RoutedEventArgs e) { ProgramList.ID id = mEventList.ElementAt(curIndex); long expiration = GetExpiration(); Program.Config.AccessLevels NetAccess = (Program.Config.AccessLevels)(cmbAccess.SelectedItem as ComboBoxItem).Tag; if (NetAccess == Program.Config.AccessLevels.CustomConfig) { if (!MakeCustom(id, expiration)) { return; } } else if (NetAccess == Program.Config.AccessLevels.StopNotify) { Program prog = App.itf.GetProgram(id); if (expiration != 0) { prog.config.SilenceUntill = expiration; } else { prog.config.Notify = false; } App.itf.UpdateProgram(prog.guid, prog.config); } else { switch (NetAccess) { case Program.Config.AccessLevels.FullAccess: // add and enable allow all rule App.itf.UpdateRule(FirewallRule.MakeAllowRule(id, Firewall.Directions.Bidirectiona, expiration)); break; case Program.Config.AccessLevels.LocalOnly: // create block rule only of we operate in blacklist mode //if (App.itf.GetFilteringMode() == Firewall.FilteringModes.BlackList) //{ //add and enable block rules for the internet App.itf.UpdateRule(FirewallRule.MakeBlockInetRule(id, Firewall.Directions.Bidirectiona, expiration)); //} //add and enable allow rules for the lan App.itf.UpdateRule(FirewallRule.MakeAllowLanRule(id, Firewall.Directions.Bidirectiona, expiration)); break; case Program.Config.AccessLevels.BlockAccess: // add and enable broad block rules App.itf.UpdateRule(FirewallRule.MakeBlockRule(id, Firewall.Directions.Bidirectiona, expiration)); break; } } PopEntry(); }
private void LoadCurrent(bool bUpdate = false) { if (!bUpdate) { Program.Config.AccessLevels NetAccess = Program.Config.AccessLevels.Unconfigured; cmbAccess.Background = ProgramControl.GetAccessColor(NetAccess); WpfFunc.CmbSelect(cmbAccess, NetAccess.ToString()); } btnApply.IsEnabled = false; ProgramList.ID id = mEventList.ElementAt(curIndex); Tuple <Program, List <Program.LogEntry> > list = mEvents[id]; int PID = list.Item2.Count > 0 ? list.Item2.First().PID : 0; imgIcon.Source = ImgFunc.GetIcon(list.Item1.GetIcon(), imgIcon.Width); //lblName.Text = id.GetDisplayName(false); grpBox.Header = id.GetDisplayName(false); lblPID.Text = string.Format("{0} ({1})", System.IO.Path.GetFileName(id.Path), PID); switch (id.Type) { //case ProgramList.Types.Program: lblSubName.Text = ""; break; case ProgramList.Types.Service: lblSubName.Text = id.Name; break; case ProgramList.Types.App: lblSubName.Text = App.engine.appMgr.GetAppName(id.Name); break; default: lblSubName.Text = ""; break; } lblPath.Text = id.Path; /*lstEvents.Items.Clear(); * foreach (Program.LogEntry entry in list.Item2) * { * string info = ""; * info += NetFunc.Protocol2SStr(entry.Protocol) + "://"; * * switch (entry.Protocol) * { * case (int)FirewallRule.KnownProtocols.TCP: * case (int)FirewallRule.KnownProtocols.UDP: * info += entry.RemoteAddress + ":" + entry.RemotePort; * break; * } * * lstEvents.Items.Add(new ListBoxItem() { Content = info}); * }*/ consGrid.Items.Clear(); foreach (Program.LogEntry entry in list.Item2) { consGrid.Items.Insert(0, new ConEntry(entry)); } }
//private Brush mBorderBrush; public static SolidColorBrush GetAccessColor(Program.Config.AccessLevels NetAccess) { switch (NetAccess) { case Program.Config.AccessLevels.FullAccess: return(new SolidColorBrush(Colors.LightGreen)); case Program.Config.AccessLevels.CustomConfig: return(new SolidColorBrush(Colors.Gold)); case Program.Config.AccessLevels.LocalOnly: return(new SolidColorBrush(Colors.LightSkyBlue)); case Program.Config.AccessLevels.BlockAccess: return(new SolidColorBrush(Colors.LightPink)); default: return(new SolidColorBrush(Colors.White)); } }
private void cmbAccess_SelectionChanged(object sender, SelectionChangedEventArgs e) { Program.Config.AccessLevels NetAccess = (Program.Config.AccessLevels)(cmbAccess.SelectedItem as ComboBoxItem).Tag; cmbAccess.Background = ProgramControl.GetAccessColor(NetAccess); btnApply.IsEnabled = NetAccess != Program.Config.AccessLevels.Unconfigured; }