public IPathValue NewItem(IProviderContext context, string path, string itemTypeName, object newItemValue) { ITrigger trigger = null; var parameter = context.DynamicParameters as TriggerNewItemParameters; if (null != parameter) { if (parameter.Interval.HasValue) { trigger = new IntervalTrigger {Name = path, Interval = parameter.Interval.Value}; } else if (parameter.Manual) { trigger = new ManualTrigger {Name = path}; } } if( null == trigger ) { trigger = new ImmediateTrigger { Name = path }; } _drive.Add(trigger); return Resolve(context, path).First().GetNodeValue(); }
public void RaisesTriggerOnSetInterval() { IntervalTrigger trigger = new IntervalTrigger(); trigger.Interval = TimeSpan.FromMilliseconds(100); int count = 0; trigger.Trigger += (s, a) => ++count; Thread.Sleep( 200 ); Assert.NotEqual( 0, count ); }