public async Task <IActionResult> GetAllInterface() { var possibleInterfaces = _interfaceEngine.GetPossibleListeners(); var activeInterfaces = await _interfaceEngine.GetActiveListeners(); List <ActiveDHCPv4InterfaceEntry> activeEntries = new List <ActiveDHCPv4InterfaceEntry>(); List <DHCPv4InterfaceEntry> unboundEntries = new List <DHCPv4InterfaceEntry>(); foreach (var item in possibleInterfaces) { var activeInterface = activeInterfaces.FirstOrDefault(x => x.PhysicalInterfaceId == item.PhysicalInterfaceId && x.Address == item.Address); if (activeInterface != null) { activeEntries.Add(new ActiveDHCPv4InterfaceEntry { SystemId = activeInterface.Id, IPv4Address = activeInterface.Address.ToString(), MACAddress = item.PhysicalAddress, Name = activeInterface.Name, PhysicalInterfaceName = item.Interfacename, PhysicalInterfaceId = activeInterface.PhysicalInterfaceId }); } else { unboundEntries.Add(new DHCPv4InterfaceEntry { IPv4Address = item.Address.ToString(), MACAddress = item.PhysicalAddress, InterfaceName = item.Interfacename, PhysicalInterfaceId = item.PhysicalInterfaceId, }); } } var detachedInterfaces = activeInterfaces .Where(x => possibleInterfaces.Count(y => y.PhysicalInterfaceId == x.PhysicalInterfaceId) == 0) .Select(x => new DetachedDHCPv4InterfaceEntry { SystemId = x.Id, IPv4Address = x.Address.ToString(), Name = x.Name }).ToList(); var result = new DHCPv4InterfaceOverview { ActiveEntries = activeEntries, Entries = unboundEntries, DetachedEntries = detachedInterfaces }; return(base.Ok(result)); }
public async Task ShowDeleteDialog(ActiveDHCPv4InterfaceEntry entry) { var parameters = new DialogParameters { { nameof(DeleteDHCPv4InterfaceDialog.Entry), entry } }; var messageForm = _dialogService.Show <DeleteDHCPv4InterfaceDialog>(String.Format(L["DeleteDialogTitle"], entry.Name), parameters); var result = await messageForm.Result; if (result.IsSuccess() == true) { _snackBarService.Add(String.Format(L["DeleteInterfaceSuccessSnackbarContent"], entry.Name), Severity.Success); _interfaceOverview = await _service.GetDHCPv4Interfaces(); } }
private DHCPv4InterfaceEntry FindValidInterface(DHCPv4InterfaceOverview interfaces) { foreach (var item in interfaces.Entries) { IPv4Address address = IPv4Address.FromString(item.IPv4Address); var bytes = address.GetBytes(); if (bytes[0] == 127 || (bytes[0] == 169 && bytes[1] == 254)) { continue; } return(item); } return(null); }
protected override async Task OnInitializedAsync() { await base.OnInitializedAsync(); _interfaceOverview = await _service.GetDHCPv4Interfaces(); }