Exemplo n.º 1
0
        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.");
            }
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 5
0
        /// <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);
            }
        }
Exemplo n.º 6
0
        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.");
            }
        }
Exemplo n.º 7
0
        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;
                }
            }
        }