ln.skyscanner/entities/Subnet.cs

53 lines
1.3 KiB
C#

// /**
// * File: Subnet.cs
// * Author: haraldwolff
// *
// * This file and it's content is copyrighted by the Author and / or copyright holder.
// * Any use wihtout proper permission is illegal and may lead to legal actions.
// *
// *
// **/
using System;
using ln.types;
using ln.types.odb;
using System.Collections.Generic;
using System.Linq;
namespace ln.skyscanner.entities
{
public class Subnet : Persistent
{
public SkyEntities SkyEntities => SkyScanner.Instance.Entities;
[DocumentID]
public Guid ID { get; private set; } = Guid.NewGuid();
public readonly CIDR Network;
public String Name;
public DateTime FirstSeen;
public DateTime LastScan;
public bool AutoScan { get; set; }
public IEnumerable<NetworkInterface> AttachedInterfaces => SkyEntities.interfaceCollection.Where((intf) => Network.Contains(intf.IPs.Select((iip)=>iip.IP)));
public IEnumerable<Node> AttachedNodes => AttachedInterfaces.Select(intf => intf.Node).Distinct();
private Subnet()
{
}
public Subnet(CIDR cidr)
{
Network = cidr;
Name = Network.ToString();
FirstSeen = DateTime.Now;
}
public override string ToString()
{
return Network.ToString();
}
}
}