public void CalculateManual(bool isMinNumber, bool isMinSize, int?freeAddr = null, int?minNetworks = null) { ManualDataCollection.Clear(); if (isMinNumber) { InternalAddressRow addrRow = CalculateMinimalNetworksNum(freeAddr); IPCalculation ipc = new IPCalculation(addrRow.Ip, addrRow.Netmask); AddManualRow(ipc, addrRow.HostsNumber); } else if (isMinSize) { var addrRows = CalculateMinimalNetworksSize(freeAddr); foreach (var row in addrRows) { IPCalculation ipc = new IPCalculation(row.Ip, row.Netmask); AddManualRow(ipc, row.HostsNumber); } } }
private void AddManualRow(IPCalculation ipc, int usedHostsNumber) { int lp = ManualDataCollection.Count + 1; ManualDataCollection.Add(new ManualDataRow() { Id = lp, ShowBinary = false, IpAddress = ipc.getNetworkAddress().ToString(), BinaryIpAddress = ipc.getNetworkAddress().ToBinaryString(), NetMask = ipc.getNetmask().ToString(), BinaryNetMask = ipc.getNetmask().ToBinaryString(), HostMin = ipc.getfirstAddress().ToString(), BinaryHostMin = ipc.getfirstAddress().ToBinaryString(), HostMax = ipc.getLastAddress().ToString(), BinaryHostMax = ipc.getLastAddress().ToBinaryString(), Broadcast = ipc.getBroadcastAddress().ToString(), BinaryBroadcast = ipc.getBroadcastAddress().ToBinaryString(), Wildcard = ipc.getWildcard().ToString(), BinaryWildcard = ipc.getWildcard().ToBinaryString(), HostsNum = ipc.getHostnumber().ToString(), HostAddressSize = ipc.getHostBits.ToString(), NetAddressSize = ipc.getNetworkBits().ToString(), FreeHosts = (ipc.getHostnumber() - (uint)usedHostsNumber).ToString() } ); }