コード例 #1
0
 public FilterDefinition(FilterKinds kind, FilterTypes type, FilterActions action, string param)
 {
     Id = Guid.NewGuid();
     Kind = kind;
     Type = type;
     Action = action;
     Parameter = param;
 }
コード例 #2
0
 private IEnumerable<string> _Iterate(ComObjectInstance obj, FilterKinds kind)
 {
     switch (kind)
     {
         case FilterKinds.Everything:
             return _Iterate(obj, FilterKinds.Building)
                 .Union(_Iterate(obj, FilterKinds.DeviceDescription))
                 .Union(_Iterate(obj, FilterKinds.GroupAddress))
                 .Union(_Iterate(obj, FilterKinds.ProductDescription))
                 .Union(_Iterate(obj, FilterKinds.Topologi))
                 .Union(_Iterate(obj, FilterKinds.ObjectDescription))
                 .Distinct();
         case FilterKinds.Building:
             return IterateBuilding(obj.ParentDevice.Building);
         case FilterKinds.Topologi:
             return IterateTopology(obj.ParentDevice);
         case FilterKinds.GroupAddress:
             return obj.GroupAddresses.SelectMany(row => IterateGroupAddresses(row));
         case FilterKinds.GroupAddressDescription:
             return obj.GroupAddresses.SelectMany(row => IterateGroupAddressDescriptions(row));
         case FilterKinds.ObjectDescription:
             return IterateObject(obj);
         case FilterKinds.DeviceDescription:
             return IterateDevice(obj);
         case FilterKinds.ProductDescription:
             return IterateProduct(obj);
         case FilterKinds.ReadFlag:
             return IterateReadFlag(obj);
         case FilterKinds.WriteFlag:
             return IterateWriteFlag(obj);
         default:
             throw new NotImplementedException("Filter Kind is unknown");
     }
 }