public ISequenceFilterNode CreateFilterNode()
        {
            var elementNodes = VixenSystem.Nodes.Distinct().ToDictionary(x => x.Id);

            IEnumerable <Guid> targetNodeIds   = TargetNodes.Select(x => x.NodeId);
            IEnumerable <Guid> validElementIds = targetNodeIds.Intersect(elementNodes.Keys);

            ISequenceFilterModuleInstance filter = Modules.ModuleManagement.GetSequenceFilter(TypeId);

            filter.InstanceId  = InstanceId;
            filter.TimeSpan    = TimeSpan;
            filter.TargetNodes = validElementIds.Select(x => elementNodes[x]).ToArray();

            return(new SequenceFilterNode(filter, StartTime));
        }
 public SequenceFilterNode(ISequenceFilterModuleInstance filter, TimeSpan startTime)
 {
     Filter    = filter;
     StartTime = startTime;
 }