public async Task <IActionResult> Index() { var settings = await _settingsRepository.GetSettings(); var neighbours = new List <EthernetNeighbor>(); var viewModel = new IndexViewModel(); try { _lldpSercives.ActivateLLDPAgent(); neighbours = _lldpSercives.GetNeighbours(); } catch (Exception e) { viewModel.Error = e.Message; } viewModel.Interfaces = _ethernetServices .GetEthernetInterfaces() .Select(@interface => new InterfaceViewModel { AllowTagging = settings.AllowTagging, IsActive = @interface.Status == OperationalStatus.Up, Status = @interface.Status, IsHostInterface = @interface.IsHostInterface, Name = @interface.Name, Tagged = @interface.Tagged, Type = @interface.Type, VirtualLANs = @interface.VirtualLANs, Hidden = settings.HiddenInterfaces?.Contains(@interface.Name) ?? false, Neighbor = neighbours.FirstOrDefault(x => x.EthernetInterfaceName == @interface.Name) }).ToList(); return(View(viewModel)); }
static void AnalyseFrame(List <RawCapture> frames, string interface_name, EthernetServices _ethernetservices) { //await Task.Run(() => { List <EthernetInterface> GVRP_ON_Interfaces = new List <EthernetInterface>(); foreach (EthernetInterface nic in _ethernetservices.GetEthernetInterfaces().Where(x => x.GVRP_Enabled == true)) { GVRP_ON_Interfaces.Add(nic); } List <GVRP_data> gvrp_events = new List <GVRP_data>(); foreach (RawCapture frame in frames) { string tmpFrame = BitConverter.ToString(frame.Data); string[] frameArry = tmpFrame.Split('-'); int i = 20; while (frameArry[i] != "00" && frameArry[i + 1] != "00") // while gvrp data { gvrp_events.Add(new GVRP_data()); gvrp_events.Last().event_id = int.Parse(frameArry[i + 1], System.Globalization.NumberStyles.HexNumber); gvrp_events.Last().vlan_ID = int.Parse(frameArry[i + 2] + frameArry[i + 3], System.Globalization.NumberStyles.HexNumber); i = i + 4; } } List <int> GVRPadd = new List <int>(); List <int> GVRPaddTmp = new List <int>(); List <int> GVRPrm = new List <int>(); foreach (GVRP_data d in gvrp_events) { if (d.event_id == 3) { GVRPrm.Add(d.vlan_ID); } if (d.event_id == 2) { GVRPadd.Add(d.vlan_ID); } } GVRPadd = GVRPadd.Distinct().ToList(); GVRPrm = GVRPrm.Distinct().ToList(); //GVRPaddTmp = GVRPadd.Except(GVRPrm).ToList(); GVRPrm = GVRPrm.Except(GVRPadd).ToList(); List <GVRP_data> gvrp_eventsToSet = new List <GVRP_data>(); foreach (int i in GVRPadd) { GVRP_data tmp = new GVRP_data(); tmp.event_id = 2; tmp.vlan_ID = i; gvrp_eventsToSet.Add(tmp); } foreach (int i in GVRPrm) { GVRP_data tmp = new GVRP_data(); tmp.event_id = 3; tmp.vlan_ID = i; gvrp_eventsToSet.Add(tmp); } foreach (GVRP_data g in gvrp_eventsToSet) { if (g.event_id == 3) // remove vlan from interface { foreach (EthernetInterface nic in GVRP_ON_Interfaces) { List <string> vlans = _ethernetservices.GetEthernetInterfaces().Where(x => x.Name == nic.Name).First().VirtualLANs.ToList(); bool isVlanToRemove = false; foreach (var vlan in vlans) { if (vlan == g.vlan_ID.ToString()) { isVlanToRemove = true; } } if (isVlanToRemove == true) { //vlans.Remove(g.vlan_ID.ToString()); List <string> tmp = new List <string>(); tmp.Add(g.vlan_ID.ToString()); //Console.WriteLine("UsuwamVLAN:{0}", tmp[0]); if (tmp.Count() > 0) { _ethernetservices.RemoveVlanFromInterface(nic.Name, tmp); } } } } if (g.event_id == 2) // add vlan to interface { List <string> vlans = new List <string>(); vlans.Add(g.vlan_ID.ToString()); //vlans to add foreach (EthernetInterface nic in GVRP_ON_Interfaces) { List <string> tmp = new List <string>(); foreach (string s in nic.VirtualLANs.ToList()) { tmp.Add(s); } tmp.Add(g.vlan_ID.ToString()); if (tmp.Count() > 0) { _ethernetservices.ApplyEthernetGVRPInterfaceVLANs(nic.Name, true, true, tmp); } } } } // }); }
public async Task ShouldReturnListOfInterface() { var ethernetInterfaces = _service.GetEthernetInterfaces().ToList(); CollectionAssert.IsNotEmpty(ethernetInterfaces); }
public async Task <IActionResult> Index(IndexViewModel viewModel) { var settings = await _settingsRepository.GetSettings(); var neighbours = new List <EthernetNeighbor>(); viewModel ??= new IndexViewModel(); try { _lldpSercives.ActivateLLDPAgent(); neighbours = _lldpSercives.GetNeighbours(); } catch (Exception e) { viewModel.Error = e.Message; } var ethernetInterfaces = _ethernetServices .GetEthernetInterfaces() .ToList(); viewModel.Interfaces = ethernetInterfaces .Select(@interface => new InterfaceViewModel { AllowTagging = settings.AllowTagging, IsActive = @interface.Status == OperationalStatus.Up, Status = @interface.Status, IsHostInterface = @interface.IsHostInterface, Name = @interface.Name, Tagged = @interface.Tagged, IsGVRP = @interface.GVRP_Enabled, Type = @interface.Type, VirtualLANs = @interface.VirtualLANs, Hidden = settings.HiddenInterfaces?.Contains(@interface.Name) ?? false, Neighbor = neighbours.FirstOrDefault(x => x.EthernetInterfaceName == @interface.Name) }).ToList(); var vlanNames = ethernetInterfaces .SelectMany(@interface => @interface.VirtualLANs) .Where(vLan => vLan.IsNotEmpty()) .Distinct() .ToList(); viewModel.VLANs = new List <BridgeViewModel>(); foreach (var vlanName in vlanNames) { viewModel.VLANs.Add(new BridgeViewModel { Name = vlanName, IpAddress = _ethernetServices.GetBridgeAddress(vlanName), Interfaces = ethernetInterfaces .Where(@interface => @interface.VirtualLANs.Contains(vlanName)) .Select(@interface => @interface.Name) .ToArray() }); } return(View(viewModel)); }