using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using NetMonitorTray.Properties; using BlubbFish.Utils; namespace NetMonitorTray.Models { public class Tray : OwnModel { private InIReader networks; private InIReader vpns; private Tray() { this.init(); } override protected void init() { this.networks = InIReader.getInstance("network.ini"); this.vpns = InIReader.getInstance("vpn.ini"); } internal Dictionary>> getMenuNetwork() { Dictionary>> ret = new Dictionary>>(); List l = this.networks.getSections(); foreach(String name in l) { String adapter = this.networks.getValue(name, "Adapter"); if(ret.Keys.Contains(adapter)) { ret[adapter].Add(adapter + "|" + name, new Tuple("Netzwerk " + this.networks.getValue(name, "Name"), Properties.Resources.MenuImagesNetwork, true, (this.NetworkSelected.Keys.Contains(adapter) && this.NetworkSelected[adapter] == name))); } else { Dictionary> tmp = new Dictionary>(); tmp.Add(adapter + "|" + name, new Tuple("Netzwerk " + this.networks.getValue(name, "Name"), Properties.Resources.MenuImagesNetwork, true, (this.NetworkSelected.Keys.Contains(adapter) && this.NetworkSelected[adapter] == name))); ret.Add(adapter, tmp); } } return ret; } internal Dictionary>> getMenuVpn() { Dictionary>> ret = new Dictionary>>(); List l = this.vpns.getSections(); Dictionary> tmp = new Dictionary>(); foreach(String vpn in l) { String name = this.vpns.getValue(vpn, "Name"); String conf = this.vpns.getValue(vpn, "Config"); tmp.Add(vpn + "|" + conf, new Tuple("VPN " + name, Properties.Resources.MenuImagesOpenvpn, true, (this.VpnSelected.Keys.Contains(conf) && this.VpnSelected[conf] == "connected"))); } ret.Add("OpenVpn", tmp); return ret; } private bool connectedStatusValue = false; internal bool connectedStatus { get { return connectedStatusValue; } set { connectedStatusValue = value; this.update(); } } private Dictionary VpnSelectedValue = new Dictionary(); /// /// Item1 = configfile /// Item2 = status ("unknown";"connected";"disconnected") /// internal Dictionary VpnSelected { get { return VpnSelectedValue; } set { VpnSelectedValue = value; this.update(); } } private Dictionary networkSelectedValue = new Dictionary(); /// /// Item1 = adapter /// Item2 = network /// public Dictionary NetworkSelected { get { return networkSelectedValue; } set { networkSelectedValue = value; this.update(); } } internal List getAdapterList() { List ret = new List(); List l = this.networks.getSections(); foreach(String name in l) { String adapter = this.networks.getValue(name, "Adapter"); if(!ret.Contains(adapter)) { ret.Add(adapter); } } return ret; } internal List getVpnList() { List ret = new List(); List l = this.vpns.getSections(); foreach(String name in l) { String adapter = this.vpns.getValue(name, "Config"); if(!ret.Contains(adapter)) { ret.Add(adapter); } } return ret; } } }