internal static void SetProperty(this IObjectSummary obj, string name, object value) { if (obj == null) { throw new ArgumentNullException(nameof(obj)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } var prop = obj.GetType().GetProperty(name, BindingFlags.Public | BindingFlags.Instance); if (prop != null && prop.CanWrite) { if (value is SwitchParameter sp) { value = sp.IsPresent; } prop.SetValue(obj, value, null); } else { throw new ArgumentException("No writeable property found."); } }
/// <inheritdoc /> protected override bool UpdateProperty(IObjectSummary obj, string name, object value) { if (base.UpdateProperty(obj, name, value)) { return(true); } if (name.Equals(InputName)) { return(true); } switch (name) { case nameof(NewName): obj.SetProperty("Name", NewName); return(true); case nameof(TagAction): if (TagAction == MembershipActions.Replace && Tags == null) { obj.GetProperty <MemberMembershipChangeTracking <Tag> >("Tags").Clear(); } return(true); case nameof(Tags): obj.GetProperty <MemberMembershipChangeTracking <Tag> >("Tags").Add(TagAction, Tags); return(true); default: return(false); } }
private async Task Process(IObjectSummary obj) { if (ExcludeByName.Contains(obj.ToString()) || ExcludeByType.Contains(obj.Type)) { return; } await export.AddAsync(obj, Depth); if (!SkipWhereUsed.IsPresent) { switch (obj) { case AddressRange _: case Group _: case GroupWithExclusion _: case Host _: case MulticastAddressRange _: case Network _: case ServiceGroup _: case ServiceDceRpc _: case ServiceICMP _: case ServiceICMP6 _: case ServiceOther _: case ServiceRPC _: case ServiceSCTP _: case ServiceTCP _: case ServiceUDP _: await Process(obj.GetIdentifier()); break; } } }
/// <inheritdoc /> protected override bool UpdateProperty(IObjectSummary obj, string name, object value) { if (base.UpdateProperty(obj, name, value)) { return(true); } //var o = (Koopman.CheckPoint.AccessLayer)obj; switch (name) { case nameof(AddDefaultRule): return(true); default: return(false); } }
/// <inheritdoc /> protected override bool UpdateProperty(IObjectSummary obj, string name, object value) { if (base.UpdateProperty(obj, name, value)) { return(true); } switch (name) { case nameof(Tags): var tags = obj.GetProperty <MemberMembershipChangeTracking <Tag> >("Tags"); foreach (string t in Tags ?? Enumerable.Empty <string>()) { tags.Add(t); } return(true); default: return(false); } }
internal static T GetProperty <T>(this IObjectSummary obj, string name) { if (obj == null) { throw new ArgumentNullException(nameof(obj)); } if (name == null) { throw new ArgumentNullException(nameof(name)); } var prop = obj.GetType().GetProperty(name, BindingFlags.Public | BindingFlags.Instance); if (prop != null && prop.CanRead) { return((T)prop.GetValue(obj)); } else { throw new ArgumentException("No property found."); } }
private async Task Process(IObjectSummary obj) { if (ExcludeByName.Contains(obj.ToString()) || ExcludeByType.Contains(obj.Type)) { return; } await export.AddAsync(obj, Depth); if (!SkipWhereUsed.IsPresent) { switch (obj) { case AddressRange _: case Group _: case GroupWithExclusion _: case Host _: case MulticastAddressRange _: case Network _: case ServiceGroup _: case ServiceDceRpc _: case ServiceICMP _: case ServiceICMP6 _: case ServiceOther _: case ServiceRPC _: case ServiceSCTP _: case ServiceTCP _: case ServiceUDP _: var whereUsed = await Session.FindWhereUsed(identifier : obj.GetIdentifier(), indirect : IndirectWhereUsed.IsPresent, cancellationToken : CancelProcessToken); await export.AddAsync(obj.GetIdentifier(), whereUsed, Depth); break; } } }