public static List <VyattaConfigObject> GetStaticRoutes(VyattaConfigObject ConfigRoot) { var StaticRoutesNodes = ConfigRoot.GetChild("protocols:static"); var StaticRoutes = StaticRoutesNodes as VyattaConfigObject; var Results = new List <VyattaConfigObject>(); if (StaticRoutes != null) { var Children = StaticRoutes.GetChildren(); foreach (var Child in Children) { var CastChild = Child as VyattaConfigObject; if (CastChild != null) { Results.Add(CastChild); } } } return(Results); }
public static void DeleteGeneratedStaticRoutes(VyattaConfigObject ConfigRoot, string Name = null) { var StaticRoutesNodes = ConfigRoot.GetChild("protocols:static"); var StaticRoutes = StaticRoutesNodes as VyattaConfigObject; var Results = new List <VyattaConfigObject>(); if (StaticRoutes != null) { var Children = StaticRoutes.GetChildren(); List <VyattaConfigNode> ToRemove = new List <VyattaConfigNode>(); foreach (var Child in Children) { var CastChild = Child as VyattaConfigObject; if (CastChild != null) { bool IsAuto = false; var SubChildren = CastChild.GetChildren(); foreach (var SubChild in SubChildren) { var CastSubChild = SubChild as VyattaConfigObject; if (CastSubChild != null) { var SubSubChildren = CastSubChild.GetChildren(); foreach (var SubSubChild in SubSubChildren) { var CastSubSubAttribute = SubSubChild as VyattaConfigAttribute; if (CastSubSubAttribute != null) { if (CastSubSubAttribute.GetName() == "description") { string Value = CastSubSubAttribute.GetValue(0).GetValue(); if (Value != null) { if (Name != null && Value.Contains("VCU-Auto: " + Name)) { IsAuto = true; break; } else if (Value.Contains("VCU-Auto:") && Name == null) { IsAuto = true; break; } } } } } if (IsAuto) { break; } } } if (IsAuto) { ToRemove.Add(Child); } } } foreach (var Remove in ToRemove) { Children.Remove(Remove); } } }