/// <summary> /// Добавляет подсеть в список подсетей репозитория. /// </summary> /// <param name="subnet">Подсеть</param> public void AddSubnet(Subnet subnet) { if (subnet != null) { Application.Current.Dispatcher.Invoke(() => { Subnets.Add(subnet); if (subnet.Printers.Count > 0) { SimpleSummary summary = SubnetSummaries.FirstOrDefault(x => x.Parameter == subnet.Address); if (summary is null) { var newSummary = new SimpleSummary(subnet.Address, subnet.Printers.Count); SubnetSummaries.Add(newSummary); } else { summary.Count += subnet.Printers.Count; } SubnetSummaries.Sort(); } }); SubnetCount = Subnets.Where(x => x.Printers.Count > 0).Count(); } }
// Delete a subnet public void DeleteSubnet(Subnet subnet) { if (subnet != null) { Subnets = Subnets.Where(s => !s.Name.Equals(subnet.Name)).ToList(); WideIpRange(subnet.IPRangeId); } }
/// <summary> /// Очищает репозиторий. /// </summary> public void Clear() { Subnets.ToList().ForEach(x => x.Printers.Clear()); Subnets.Clear(); Printers.Clear(); ModelSummaries.Clear(); SubnetSummaries.Clear(); DeviceCount = 0; SubnetCount = 0; }
// Delete the IPRange and its subnets public void DeleteIpRange(IPRange ipRange) { if (ipRange == null) { return; } Subnets.RemoveAll(s => s.IPRangeId == ipRange.Id); IPRanges.Remove(ipRange); NotifySubnetChange(); }
private void WideIpRange(int ipRangeId, bool notify = true) { var ipRange = IPRanges.Where(ir => ir.Id == ipRangeId).FirstOrDefault(); if (ipRange != null) { var subnets = Subnets.Where(s => s.IPRangeId == ipRangeId).ToList(); ipRange.WideSubnet(subnets); if (notify) { NotifySubnetChange(); } } }
private void CountDevices() { CountUnused = UnusedDeviceItems.Count; Subnets.ForEach((sn) => { CountIoControllers += sn.IoSystems.Count; CountInSubnets += sn.SubnetLvlDevItems.Count; sn.IoSystems.ForEach((ios) => { CountIoDevices += ios.IoDevices.Count; }); }); }
public override string ToString() { StringBuilder sb = new StringBuilder(); sb.AppendFormat(CultureInfo.InvariantCulture, "Name:{0} ", string.IsNullOrEmpty(Name) ? "null" : Name); sb.AppendFormat(CultureInfo.InvariantCulture, "Description:{0} ", string.IsNullOrEmpty(Description) ? "null" : Description); sb.AppendFormat(CultureInfo.InvariantCulture, "VnetName:{0} ", string.IsNullOrEmpty(VnetName) ? "null" : VnetName); sb.AppendFormat(CultureInfo.InvariantCulture, "Subnets:{0} ", !Subnets.Any() ? "null" : Subnets.ToString()); sb.AppendFormat(CultureInfo.InvariantCulture, "InstanceCount:{0} ", InstanceCount); sb.AppendFormat(CultureInfo.InvariantCulture, "GatewaySize:{0} ", string.IsNullOrEmpty(GatewaySize) ? "null" : GatewaySize); sb.AppendFormat(CultureInfo.InvariantCulture, "State:{0} ", string.IsNullOrEmpty(State) ? "null" : State); sb.AppendFormat(CultureInfo.InvariantCulture, "VirtualIPs:{0} ", !VirtualIPs.Any() ? "null" : VirtualIPs.ToString()); sb.AppendFormat(CultureInfo.InvariantCulture, "DnsName:{0} ", string.IsNullOrEmpty(DnsName) ? "null" : DnsName); return(sb.ToString()); }
/// <summary> /// Checks if specified address is allowed by the current permission. /// </summary> /// <param name="address">Address to check.</param> /// <returns>True if passed address is allowed.</returns> public bool IsAddressAllowed(string address) { if (string.IsNullOrEmpty(address)) { throw new ArgumentException("Address is null or empty!", "address"); } if (Subnets == null) { return(true); } var parsedAddress = Subnet.ParseAddress(address); return(Subnets.Any(s => Subnet.ParseSubnet(s).Includes(parsedAddress))); }
public AddressAssignment() { Subnets = new Subnets(); }
public void AddSubnet(Subnet subnet) { Subnets.Add(subnet); WideIpRange(subnet.IPRangeId); }
// Reset the subnets when IPRange changes public void ResetSubnets(int ipRangeId) { Subnets.RemoveAll(s => s.IPRangeId == ipRangeId); WideIpRange(ipRangeId); }