public void ItOnlyReturnsTriggeredBundles() { var collection = new TriggerCollection(); var bundles = new[] { new TriggerBundle(TriggerTestHelpers.StaticTrigger(true)), new TriggerBundle(TriggerTestHelpers.StaticTrigger(false)), new TriggerBundle(TriggerTestHelpers.StaticTrigger(true)), new TriggerBundle(TriggerTestHelpers.StaticTrigger(false)), new TriggerBundle(TriggerTestHelpers.StaticTrigger(false)) }; var expected = new[] { bundles[0], bundles[2], }; foreach(var bundle in bundles) { collection.Add(bundle); } var actual = collection.Check(); CollectionAssert.AreEqual(expected, actual); }
public Context() { Locks = new LockCollection(); Triggers = new TriggerCollection(); Subprograms = new SubprogramCollection(); LabelIndex = 0; InstructionId = 0; }
public static TriggerCollection GetTriggers(DependencyObject d) { TriggerCollection triggers = (TriggerCollection)d.GetValue(TriggersProperty); if(triggers == null) { triggers = new TriggerCollection(); d.SetValue(TriggersProperty, triggers); } return triggers; }
public static void SetTriggers(Control control, TriggerCollection collection) { if (!instance.triggerLookup.ContainsKey(control)) { instance.triggerLookup[control] = collection; control.Unloaded += OnControlUnloaded; collection.Control = control; } }
/// <summary> /// Gets the TriggerCollection containing the triggers associated with the specified object. /// </summary> /// <param name="obj">The object from which to retrieve the triggers.</param> /// <returns> /// A TriggerCollection containing the triggers associated with the specified object. /// </returns> public static TriggerCollection GetTriggers(IDependencyObject obj) { var triggerCollection = (TriggerCollection) obj.GetValue(TriggersProperty); if (triggerCollection == null) { triggerCollection = new TriggerCollection(); obj.SetValue(TriggersProperty, triggerCollection); } return triggerCollection; }
public void Dispose() { _regInfo = null; _triggers = null; _settings = null; _principal = null; _actions = null; if (_v2Def != null) Marshal.ReleaseComObject(_v2Def); _v1Task = null; }
public override void DeepCopy(IDeepCopyable source, ICopyManager copyManager) { base.DeepCopy(source, copyManager); TemplateWithTriggers twt = (TemplateWithTriggers)source; TriggerCollection triggers = Triggers; foreach (TriggerBase t in twt.Triggers) { triggers.Add(copyManager.GetCopy(t)); } }
public static TriggerCollection GetTriggers(DependencyObject d) { TriggerCollection triggers = (TriggerCollection)d.GetValue(TriggersProperty); if (triggers == null) { triggers = new TriggerCollection(); d.SetValue(TriggersProperty, triggers); } return(triggers); }
/// <summary> /// Returns the trigger collection for a particular control. /// </summary> public static TriggerCollection GetTriggers(Control control) { TriggerCollection collection; if (!instance.triggerLookup.TryGetValue(control, out collection)) { collection = new TriggerCollection(control); instance.triggerLookup[control] = collection; control.Unloaded += OnControlUnloaded; } return collection; }
public void AddTriggerTest() { Button button = new Button(); StubTrigger trigger = new StubTrigger(); TriggerCollection tc = Interaction.GetTriggers(button); tc.Add(trigger); Assert.IsTrue(trigger.AddedHost, "Trigger has been parented."); Assert.IsFalse(trigger.ChangedHost, "Trigger has not changed parents."); Assert.IsFalse(trigger.RemovedHost, "Trigger has not been unparented."); }
public static void GetTriggers(string database) { ServerConnection serverConnection = new ServerConnection(Utility.DBConnection); Server server = new Server(serverConnection); Database db = server.Databases[database]; ScriptingOptions so = new ScriptingOptions(); so.ChangeTracking = true; so.ClusteredIndexes = true; so.ExtendedProperties = true; CreateTriggersSchema(); foreach (Table table in db.Tables) { TriggerCollection triggerCollection = table.Triggers; if (triggerCollection.Count > 0) { foreach (Trigger trigger in triggerCollection) { StringCollection script = trigger.Script(so); string[] scriptArray = new string[script.Count]; script.CopyTo(scriptArray, 0); DataRow dr = triggers.NewRow(); dr["Name"] = trigger.Name; //dr["Schema"] = trigger.; dr["Description"] = trigger.ExtendedProperties["MS_Description"] != null ? trigger.ExtendedProperties["MS_Description"].Value.ToString() : string.Empty; dr["TableName"] = table.Name; dr["InsteadOf"] = trigger.InsteadOf; dr["IsEnabled"] = trigger.IsEnabled; dr["CreateDate"] = trigger.CreateDate; dr["DateLastModified"] = trigger.DateLastModified; dr["Insert"] = trigger.Insert; dr["Update"] = trigger.Update; dr["Delete"] = trigger.Delete; for (int i = 0; i < scriptArray.Length; i++) { //scriptArray[i] = Utility.SplitString(scriptArray[i], 150); scriptArray[i] = scriptArray[i].Replace("@level0type", "\n\t@level0type"); } dr["Script"] = string.Join(Environment.NewLine, scriptArray); triggers.Rows.Add(dr); } } } }
public void RemoveTriggerTest() { Button button = new Button(); StubTrigger trigger = new StubTrigger(); TriggerCollection tc = Interaction.GetTriggers(button); tc.Add(trigger); Assert.AreEqual(trigger.HostObject, button, "trigger.AssociatedObject == button"); tc.Remove(trigger); Assert.IsTrue(trigger.AddedHost, "Trigger has been parented."); Assert.IsFalse(trigger.ChangedHost, "Trigger has not changed parents."); Assert.IsTrue(trigger.RemovedHost, "Trigger has been unparented."); }
public static void enableTriggers(string machineName, string taskName, SecurityOptions securityOptions, bool enable) { using (TaskService ts = new TaskService(machineName, securityOptions.RunAsUser, Environment.UserDomainName, securityOptions.Password)) { Task task = getTask(taskName, ts); if (task != null) { TaskDefinition def = task.Definition; TriggerCollection triggers = def.Triggers; List <Trigger> newTriggerList = new List <Trigger>(); foreach (Trigger trigger in triggers) { Trigger newTrigger = trigger.Clone() as Trigger; newTrigger.Enabled = enable; newTriggerList.Add(newTrigger); } def.Triggers.Clear(); def.Triggers.AddRange(newTriggerList); if (securityOptions.HighestPrivilege) { def.Principal.RunLevel = TaskRunLevel.Highest; } else { def.Principal.RunLevel = TaskRunLevel.LUA; } TaskLogonType logonType = TaskLogonType.S4U; if (securityOptions.StorePassword) { logonType = TaskLogonType.Password; } string runAsUser = String.Concat(Environment.UserDomainName, "\\", securityOptions.RunAsUser); //using (TaskService ts = new TaskService(machineName, securityOptions.RunAsUser, machineName, securityOptions.Password)) { TaskFolder tf = getTaskFolder(ts); tf.RegisterTaskDefinition(taskName, def, TaskCreation.Update, runAsUser, securityOptions.Password, logonType); } } } }
private void UpdateTriggers(TriggerCollection triggers, dynamic navigationPlanJson) { var existingTriggers = navigationPlanJson.triggersStorage.triggers; //remove the old triggers foreach (var triggerElement in ((IEnumerable)existingTriggers).Cast <dynamic>().Where(triggerElement => IsDynamicLayoutActionElement(triggerElement)) .ToArray()) { triggerElement.Remove(); } //add new triggers foreach (var trigger in triggers.OrderBy(t => t.Priority)) { dynamic triggerElement = new JObject(); triggerElement.name = trigger.Name; triggerElement.priority = trigger.Priority; triggerElement.actionType = ""; foreach (var action in trigger.Actions) { triggerElement.actionName = action.Name; //It looks like I'm setting it here multiple times but actually there is only one action var conditionsArray = new JArray(); triggerElement.conditions = conditionsArray; foreach (var condition in action.Conditions) { dynamic conditionElement = new JObject(); conditionElement.type = condition.Type; conditionElement.updateType = condition.UpdateType; conditionElement.equationType = condition.EquationType; var valuesArray = new JArray(); conditionElement.values = valuesArray; foreach (var value in condition.Values) { valuesArray.Add(new JValue(value.Value)); } conditionsArray.Add(conditionElement); } } existingTriggers.Add(triggerElement); } }
/// <summary> /// Gets the attached triggers. /// </summary> /// <param name="obj"> /// The object to get the triggers from. /// </param> /// <returns> /// The <see cref="TriggerCollection"/>. /// </returns> public static TriggerCollection GetTriggers(DependencyObject obj) { if (obj != null) { var triggers = (TriggerCollection)obj.GetValue(TriggersProperty); if (triggers == null) { triggers = new TriggerCollection(); obj.SetValue(TriggersProperty, triggers); } return triggers; } return null; }
/// <summary> /// Gets the attached triggers. /// </summary> /// <param name="obj"> /// The object to get the triggers from. /// </param> /// <returns> /// The <see cref="TriggerCollection"/>. /// </returns> public static TriggerCollection GetTriggers(DependencyObject obj) { if (obj != null) { var triggers = (TriggerCollection)obj.GetValue(TriggersProperty); if (triggers == null) { triggers = new TriggerCollection(); obj.SetValue(TriggersProperty, triggers); } return(triggers); } return(null); }
public static bool isTaskDisabled(string machineName, string taskName, SecurityOptions securityOptions) { using (TaskService ts = new TaskService(machineName, securityOptions.RunAsUser, Environment.UserDomainName, securityOptions.Password)) { Task task = getTask(taskName, ts); TaskDefinition def = task.Definition; TriggerCollection triggers = def.Triggers; foreach (Trigger trigger in triggers) { if (trigger.Enabled == true) { return(false); } } } return(true); }
public GameMakerFile() { Sprites = new SpriteCollection(); Sounds = new SoundCollection(); Backgrounds = new BackgroundCollection(); Paths = new PathCollection(); Scripts = new ScriptCollection(); Fonts = new FontCollection(); TimeLines = new TimeLineCollection(); Objects = new ObjectCollection(); Rooms = new RoomCollection(); Triggers = new TriggerCollection(); Includes = new IncludedFileCollection(); Constants = new ConstantCollection(); Information = new GameInformation(); Settings = new GameSettings(); ResourceTree = new ResourceTree(); }
public void ActionInvocationOrderTest() { Rectangle rectangle = new Rectangle(); TimedAction action1 = new TimedAction(); TimedAction action2 = new TimedAction(); TimedAction action3 = new TimedAction(); TriggerCollection collection = Interaction.GetTriggers(rectangle); StubTrigger trigger = new StubTrigger(); trigger.Actions.Add(action1); trigger.Actions.Add(action2); trigger.Actions.Add(action3); collection.Add(trigger); trigger.FireStubTrigger(); Assert.IsTrue(action1.Order < action2.Order, "action1.Order < action2.Order"); Assert.IsTrue(action2.Order < action3.Order, "action2.Order < action3.Order"); }
/// <summary> /// Gets the value of the <see cref="TriggersProperty"/> attached property. /// </summary> /// <param name="dependencyObject"> /// The dependency object for which to get the value. /// </param> /// <returns> /// The <see cref="TriggerCollection"/> associated to the given object. /// </returns> // ReSharper disable ReturnTypeCanBeEnumerable.Global public static TriggerCollection GetTriggers(DependencyObject dependencyObject) // ReSharper restore ReturnTypeCanBeEnumerable.Global { if (dependencyObject != null) { var collection = (TriggerCollection)dependencyObject.GetValue(TriggersProperty); if (collection == null) { collection = new TriggerCollection(); dependencyObject.SetValue(TriggersProperty, collection); } return(collection); } return(null); }
public void MoveTriggerTest() { Button button = new Button(); Rectangle rectangle = new Rectangle(); StubTrigger trigger = new StubTrigger(); TriggerCollection tc = Interaction.GetTriggers(rectangle); TriggerCollection tc2 = Interaction.GetTriggers(button); tc.Add(trigger); tc.Remove(trigger); tc2.Add(trigger); Assert.IsTrue(trigger.AddedHost, "Trigger has been parented."); Assert.IsTrue(trigger.ChangedHost, "Trigger has changed parents."); Assert.IsTrue(trigger.RemovedHost, "Trigger has been unparented."); Assert.AreEqual(trigger.HostObject, button, "trigger.AssociatedObject == button"); Assert.AreEqual(Interaction.GetTriggers(rectangle).Count, 0, "rectangle.Triggers.Count == 0"); }
public void AttachMultipleTimesTest() { EventTriggerBase trigger = new StubTrigger(); Rectangle rectangle1 = new Rectangle(); Rectangle rectangle2 = new Rectangle(); TriggerCollection collection1 = Interaction.GetTriggers(rectangle1); TriggerCollection collection2 = Interaction.GetTriggers(rectangle2); collection1.Add(trigger); // it is illegal to add the same trigger to more than one object try { collection2.Add(trigger); Debug.Fail("Attaching the same trigger twice should throw a InvalidOperationException"); } catch (InvalidOperationException) { } }
private void FillTriggers(TriggerCollection triggersCollection) { dynamic triggersElement = _navigationPlanJson?.triggersStorage?.triggers; if (triggersElement == null) { return; } foreach (var triggerElement in triggersElement) { string actionName = ConvertDynamicValue <string>(triggerElement.actionName); if (!TriggerAction.POSSIBLE_ACTION_NAMES.Contains(actionName)) { continue; } Trigger trigger = new Trigger(ConvertDynamicValue <string>(triggerElement.name), ConvertDynamicValue <int>(triggerElement.priority)); var action = new TriggerAction(actionName); foreach (var conditionElement in triggerElement.conditions) { var condition = new Condition(ConvertDynamicValue <string>(conditionElement.updateType), ConvertDynamicValue <string>(conditionElement.type), ConvertDynamicValue <string>(conditionElement.equationType)); foreach (var value in conditionElement.values) { condition.Values.Add(new ConditionValue(ConvertDynamicValue <string>(value))); } action.Conditions.Add(condition); } trigger.Actions.Add(action); triggersCollection.Add(trigger); } }
private static void OnTriggersChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) { TriggerCollection triggerCollection = args.OldValue as TriggerCollection; TriggerCollection triggerCollection2 = args.NewValue as TriggerCollection; if (triggerCollection != triggerCollection2) { if (triggerCollection != null && ((IAttachedObject)triggerCollection).AssociatedObject != null) { triggerCollection.Detach(); } if (triggerCollection2 != null && obj != null) { if (((IAttachedObject)triggerCollection2).AssociatedObject != null) { throw new InvalidOperationException("CannotHostTriggerCollectionMultipleTimesExceptionMessage"); } triggerCollection2.Attach(obj); } } }
public void ScheduleRenewTask() { string taskName = $"Lets encrypt renew {CleanFileName(_options.HostName)}"; Log.Information($"Creating Task {taskName} with Windows Task scheduler at 9am every day."); DateTime now = DateTime.UtcNow; DateTime runtime = new DateTime(now.Year, now.Month, now.Day, 9, 0, 0, DateTimeKind.Utc); string currentExec = Assembly.GetExecutingAssembly().Location; // Create an action that will launch the app with the renew parameters whenever the trigger fires string actionString = $"\"{string.Join("\" \"", Environment.GetCommandLineArgs().Skip(1))}\" --renew"; using (TaskService taskService = new TaskService()) using (DailyTrigger trigger = new DailyTrigger { DaysInterval = 1, StartBoundary = runtime }) using (ExecAction action = new ExecAction(currentExec, actionString, Path.GetDirectoryName(currentExec))) using (TaskFolder rootFolder = taskService.RootFolder) using (TaskDefinition task = taskService.NewTask()) using (TaskRegistrationInfo reginfo = task.RegistrationInfo) using (TriggerCollection triggers = task.Triggers) using (ActionCollection actions = task.Actions) using (TaskPrincipal principal = task.Principal) { rootFolder.DeleteTask(taskName, false); reginfo.Description = $"Check for renewal of ACME certificates for {_options.HostName}."; triggers.Add(trigger); actions.Add(action); principal.RunLevel = TaskRunLevel.Highest; // need admin principal.LogonType = TaskLogonType.ServiceAccount; principal.UserId = "SYSTEM"; rootFolder.RegisterTaskDefinition(taskName, task); } }
/// <summary> /// Process triggers. /// </summary> /// <param name="triggers">Object to process.</param> /// <param name="tableOrViewName">Name of table or view containing triggers.</param> /// <param name="fileBasePath">FIle path to write to (might differ between view and table).</param> public void Process(TriggerCollection triggers, string tableOrViewName, string fileBasePath) { new { triggers }.AsArg().Must().NotBeNull(); new { tableOrViewName }.AsArg().Must().NotBeNullNorWhiteSpace(); new { fileBasePath }.AsArg().Must().NotBeNullNorWhiteSpace(); if (triggers.Count > 0) { this.documentGenerator.AddEntry("Triggers on table - " + tableOrViewName, 12, true); } this.documentGenerator.Indent(); foreach (Trigger trigger in triggers) { if (!trigger.IsSystemObject) { this.databaseDocumenter.Document(trigger); ScriptAndWriteToFile(trigger, fileBasePath, FileExtensionTrigger); } } this.documentGenerator.Undent(); }
protected override void ProcessResource(TriggerCollection aTriggers) { var document = LoadXml(Filenames.Triggers + ".xml"); if (document != null) { OnCategoryProcessing(ResourceTypes.Triggers); aTriggers.AddRange( from element in document.Elements("Trigger") select new Trigger() { Name = GetElement(element, "Name").Value, ID = GetElementValue <int>(element, "ID"), Condition = GetElement(element, "Condition").Value, ConstantName = GetElement(element, "ConstantName").Value, Moment = GetElementValue <CheckingMoments>(element, "Moment") } ); OnCategoryProcessed(ResourceTypes.Triggers); } }
private void AddTrigger(MidiTrigger trigger) { var toRemove = TriggerCollection.Where(x => x.Trigger.PinNumber == trigger.PinNumber).ToList(); toRemove.ForEach(x => TriggerCollection.Remove(x)); TriggerCollection.Add(new MidiTriggerViewModel(_eventAggregator, DrumManager, trigger)); var seriesToRemove = CurrentValuePlot.Series.Where(x => x.Tag as Pins? == trigger.PinNumber).ToList(); seriesToRemove.ForEach(x => CurrentValuePlot.Series.Remove(x)); var newSeries = new LineSeries { Title = trigger.PinNumber.ToString(), Tag = trigger.PinNumber }; int insertIndex = 0; for (int i = CurrentValuePlot.Series.Count - 1; i >= 0; i--) { Pins currentPin = (Pins)CurrentValuePlot.Series[i].Tag; if (currentPin < trigger.PinNumber) { insertIndex = i + 1; break; } } CurrentValuePlot.Series.Insert(insertIndex, newSeries); //public active / inactive _eventAggregator.GetEvent <TriggerActiveChangedEvent>() .Publish(new KeyValuePair <Pins, bool>(trigger.PinNumber, trigger.Type != TriggerType.Disabled)); }
private static IEnumerable <TriggerBase> MergeTriggers(TriggerCollection left, TriggerCollection right) { if (TryGetNonNull(left, right, out var value)) { return(value); } var result = new List <TriggerBase>(right); foreach (var triggerBase in left) { // TODO switch (triggerBase) { case Trigger trigger: //trigger.Setters break; case DataTrigger dataTrigger: //dataTrigger.Setters break; case MultiTrigger multiTrigger: //multiTrigger.Setters break; case MultiDataTrigger multiDataTrigger: //multiDataTrigger.Setters break; case EventTrigger eventTrigger: break; } } return(result); }
public ITriggerCollection CreateTriggerCollection(TriggerCollection triggerCollection) { return(new Dev2TriggerCollection(this, triggerCollection)); }
public ITriggerCollection CreateTriggerCollection(TriggerCollection triggerCollection) { return new Dev2TriggerCollection(this, triggerCollection); }
/// <summary> /// Sets the triggers attached via the <see cref="P:TomsToolbox.Wpf.StyleBindings.Triggers"/> attached property. /// </summary> /// <param name="obj">The obj.</param> /// <param name="value">The value.</param> public static void SetTriggers([NotNull] DependencyObject obj, [CanBeNull, ItemNotNull] TriggerCollection value) { obj.SetValue(TriggersProperty, value); }
public Dev2TriggerCollection(ITaskServiceConvertorFactory taskServiceConvertorFactory, TriggerCollection nativeInstance) { _taskServiceConvertorFactory = taskServiceConvertorFactory; _nativeInstance = nativeInstance; }
} // end check persistence method // list all scheduled tasks available to backdoor public void listPersistence(string persistMethod, string command, string commandArg, string theKey, string theVal, string theName, string filePath, string status, string option) { // determine whether option was specified bool optionSpecified = false; if (!option.Equals("")) { optionSpecified = true; } bool nameSpecified = false; bool schTaskExists = false; // if user specified they only want to list a specific schtask if (!theName.Equals("")) { nameSpecified = true; schTaskExists = lib.Utils.ScheduledTaskExists(theName); // if schtask exists, then look for that schtask if (schTaskExists) { Console.WriteLine(""); Console.WriteLine("[*] INFO: Listing scheduled task details of name that was specified."); TaskService theTask = new TaskService(); IEnumerable <Task> allOfTheTasks = theTask.AllTasks; Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(""); foreach (Task task in allOfTheTasks) { string schtaskName = task.Name; DateTime runTime = task.NextRunTime; string theRunTime = runTime.ToString("G", CultureInfo.CurrentCulture); // once we find the schtask, display its details if (schtaskName.ToLower().Equals(theName.ToLower())) { ActionCollection allActions = task.Definition.Actions; // getschtask owner string schtaskAction = allActions.Context; SecurityIdentifier schtaskOwner = task.SecurityDescriptor.Owner; NTAccount ntAccount = (NTAccount)schtaskOwner.Translate(typeof(NTAccount)); string owner = ntAccount.ToString(); string schtaskFolder = task.Folder.Path; Console.WriteLine("[*] INFO: TASK NAME:"); Console.WriteLine(schtaskName); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK PATH:"); Console.WriteLine(schtaskFolder); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK OWNER:"); Console.WriteLine(owner); Console.WriteLine(""); Console.WriteLine("[*] INFO: NEXT RUN TIME:"); Console.WriteLine(theRunTime); Console.WriteLine(""); // get the frequency in which the schtask executes TriggerCollection triggers = task.Definition.Triggers; string triggerType = ""; foreach (Trigger trigger in triggers) { RepetitionPattern pattern = trigger.Repetition; triggerType = trigger.TriggerType.ToString(); Console.WriteLine("[*] INFO: TASK TRIGGER:"); Console.WriteLine(triggerType); Console.WriteLine(""); } // get all actions and print foreach (Microsoft.Win32.TaskScheduler.Action action in allActions) { Console.WriteLine("[*] INFO: TASK ACTION:"); Console.WriteLine(action.ToString()); Console.WriteLine(""); } } // end once we find the schtask } // end for each task return; } // end if schtask exists // if schtask doesn't exist else { Console.WriteLine(""); Console.WriteLine("[-] ERROR: That scheduled task name does not exist. Please double check the name you provided."); return; } } // end if user specified they only want to list a specific schtask // if user wants to see all schtasks else { Console.WriteLine(""); Console.WriteLine("[*] INFO: Listing all scheduled tasks available to backdoor."); TaskService ts = new TaskService(); IEnumerable <Task> allTasks = ts.AllTasks; bool schtaskExists = lib.Utils.ScheduledTaskExists(theName); Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(""); foreach (Task task in allTasks) { string schtaskName = task.Name; DateTime runTime = task.NextRunTime; string theRunTime = runTime.ToString("G", CultureInfo.CurrentCulture); bool taskActive = task.IsActive; // only proceed to list schtask info if it is active if (taskActive) { // get collection of all actions the schtask performs ActionCollection allActions = task.Definition.Actions; // getschtask owner string schtaskAction = allActions.Context; SecurityIdentifier schtaskOwner = task.SecurityDescriptor.Owner; NTAccount ntAccount = (NTAccount)schtaskOwner.Translate(typeof(NTAccount)); string owner = ntAccount.ToString(); string schtaskFolder = task.Folder.Path; TriggerCollection triggers = task.Definition.Triggers; string triggerType = ""; foreach (Trigger trigger in triggers) { RepetitionPattern pattern = trigger.Repetition; triggerType = trigger.TriggerType.ToString(); } // if option was specified, only display schtasks with frequency given if (optionSpecified) { if (option.ToLower().Equals("hourly") && triggerType.ToLower().Equals("time")) { Console.WriteLine("[*] INFO: TASK NAME:"); Console.WriteLine(schtaskName); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK PATH:"); Console.WriteLine(schtaskFolder); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK OWNER:"); Console.WriteLine(owner); Console.WriteLine(""); Console.WriteLine("[*] INFO: NEXT RUN TIME:"); Console.WriteLine(theRunTime); Console.WriteLine(""); // get the frequency in which the schtask executes TriggerCollection theTriggers = task.Definition.Triggers; string theTriggerType = ""; foreach (Trigger trigger in theTriggers) { RepetitionPattern pattern = trigger.Repetition; theTriggerType = trigger.TriggerType.ToString(); Console.WriteLine("[*] INFO: TASK TRIGGER:"); Console.WriteLine(theTriggerType); Console.WriteLine(""); } // get all actions and print foreach (Microsoft.Win32.TaskScheduler.Action action in allActions) { Console.WriteLine("[*] INFO: TASK ACTION:"); Console.WriteLine(action.ToString()); Console.WriteLine(""); } Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(""); } else if (option.ToLower().Equals("daily") && triggerType.ToLower().Equals("daily")) { Console.WriteLine("[*] INFO: TASK NAME:"); Console.WriteLine(schtaskName); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK PATH:"); Console.WriteLine(schtaskFolder); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK OWNER:"); Console.WriteLine(owner); Console.WriteLine(""); Console.WriteLine("[*] INFO: NEXT RUN TIME:"); Console.WriteLine(theRunTime); Console.WriteLine(""); // get the frequency in which the schtask executes TriggerCollection theTriggers = task.Definition.Triggers; string theTriggerType = ""; foreach (Trigger trigger in theTriggers) { RepetitionPattern pattern = trigger.Repetition; theTriggerType = trigger.TriggerType.ToString(); Console.WriteLine("[*] INFO: TASK TRIGGER:"); Console.WriteLine(theTriggerType); Console.WriteLine(""); } // get all actions and print foreach (Microsoft.Win32.TaskScheduler.Action action in allActions) { Console.WriteLine("[*] INFO: TASK ACTION:"); Console.WriteLine(action.ToString()); Console.WriteLine(""); } Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(""); } else if ((option.ToLower().Equals("logon") && triggerType.ToLower().Equals("logon")) || (option.ToLower().Equals("boot") && triggerType.ToLower().Equals("boot"))) { Console.WriteLine("[*] INFO: TASK NAME:"); Console.WriteLine(schtaskName); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK PATH:"); Console.WriteLine(schtaskFolder); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK OWNER:"); Console.WriteLine(owner); Console.WriteLine(""); Console.WriteLine("[*] INFO: NEXT RUN TIME:"); Console.WriteLine(theRunTime); Console.WriteLine(""); // get the frequency in which the schtask executes TriggerCollection theTriggers = task.Definition.Triggers; string theTriggerType = ""; foreach (Trigger trigger in theTriggers) { RepetitionPattern pattern = trigger.Repetition; theTriggerType = trigger.TriggerType.ToString(); Console.WriteLine("[*] INFO: TASK TRIGGER:"); Console.WriteLine(theTriggerType); Console.WriteLine(""); } // get all actions and print foreach (Microsoft.Win32.TaskScheduler.Action action in allActions) { Console.WriteLine("[*] INFO: TASK ACTION:"); Console.WriteLine(action.ToString()); Console.WriteLine(""); } Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(""); } } // end if option specified // otherwise display as normal else { Console.WriteLine("[*] INFO: TASK NAME:"); Console.WriteLine(schtaskName); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK PATH:"); Console.WriteLine(schtaskFolder); Console.WriteLine(""); Console.WriteLine("[*] INFO: TASK OWNER:"); Console.WriteLine(owner); Console.WriteLine(""); Console.WriteLine("[*] INFO: NEXT RUN TIME:"); Console.WriteLine(theRunTime); Console.WriteLine(""); // get the frequency in which the schtask executes TriggerCollection theTriggers = task.Definition.Triggers; string theTriggerType = ""; foreach (Trigger trigger in theTriggers) { RepetitionPattern pattern = trigger.Repetition; theTriggerType = trigger.TriggerType.ToString(); Console.WriteLine("[*] INFO: TASK TRIGGER:"); Console.WriteLine(theTriggerType); Console.WriteLine(""); } // get all actions and print foreach (Microsoft.Win32.TaskScheduler.Action action in allActions) { Console.WriteLine("[*] INFO: TASK ACTION:"); Console.WriteLine(action.ToString()); Console.WriteLine(""); } Console.WriteLine(""); Console.WriteLine(""); Console.WriteLine(""); } } // end if schtask is active } // end iterating through each schtask } // end if user wants to see all schtasks } // end list persistence method
// =========================================================================== // These methods are invoked when a Style/Template is Sealed // =========================================================================== #region WriteMethods // // This method // 1. Seals a template // internal static void SealTemplate( FrameworkTemplate frameworkTemplate, ref bool isSealed, FrameworkElementFactory templateRoot, TriggerCollection triggers, ResourceDictionary resources, HybridDictionary childIndexFromChildID, ref FrugalStructList<ChildRecord> childRecordFromChildIndex, ref FrugalStructList<ItemStructMap<TriggerSourceRecord>> triggerSourceRecordFromChildIndex, ref FrugalStructList<ContainerDependent> containerDependents, ref FrugalStructList<ChildPropertyDependent> resourceDependents, ref ItemStructList<ChildEventDependent> eventDependents, ref HybridDictionary triggerActions, ref HybridDictionary dataTriggerRecordFromBinding, ref bool hasInstanceValues, ref EventHandlersStore eventHandlersStore) { Debug.Assert(frameworkTemplate != null ); // This template has already been sealed. // There is no more to do. if (isSealed) { return; } // Seal template nodes (if exists) if (frameworkTemplate != null) { frameworkTemplate.ProcessTemplateBeforeSeal(); } if (templateRoot != null) { Debug.Assert( !frameworkTemplate.HasXamlNodeContent ); // Seal the template Debug.Assert(frameworkTemplate != null); //frameworkTemplate.ProcessTemplateBeforeSeal(); templateRoot.Seal(frameworkTemplate); } // Seal triggers if (triggers != null) { triggers.Seal(); } // Seal Resource Dictionary if (resources != null) { resources.IsReadOnly = true; } // Build shared tables if (templateRoot != null) { // This is a FEF-style template. Process the root node, and it will // recurse through the rest of the FEF tree. StyleHelper.ProcessTemplateContentFromFEF( templateRoot, ref childRecordFromChildIndex, ref triggerSourceRecordFromChildIndex, ref resourceDependents, ref eventDependents, ref dataTriggerRecordFromBinding, childIndexFromChildID, ref hasInstanceValues); } // Process Triggers. (Trigger PropertyValues are inserted // last into the Style/Template GetValue chain because they // are the highest priority) bool hasHandler = false; Debug.Assert( frameworkTemplate != null ); StyleHelper.ProcessTemplateTriggers( triggers, frameworkTemplate, ref childRecordFromChildIndex, ref triggerSourceRecordFromChildIndex, ref containerDependents, ref resourceDependents, ref eventDependents, ref dataTriggerRecordFromBinding, childIndexFromChildID, ref hasInstanceValues, ref triggerActions, templateRoot, ref eventHandlersStore, ref frameworkTemplate.PropertyTriggersWithActions, ref frameworkTemplate.DataTriggersWithActions, ref hasHandler ); frameworkTemplate.HasLoadedChangeHandler = hasHandler; frameworkTemplate.SetResourceReferenceState(); // All done, seal self and call it a day. isSealed = true; // Remove thread affinity so it can be accessed across threads frameworkTemplate.DetachFromDispatcher(); // Check if the template has the Template property set on the container via its visual triggers. // It is an error to specify the TemplateProperty in your own Template. if (StyleHelper.IsSetOnContainer(Control.TemplateProperty, ref containerDependents, true) || StyleHelper.IsSetOnContainer(ContentPresenter.TemplateProperty, ref containerDependents, true)) { throw new InvalidOperationException(SR.Get(SRID.CannotHavePropertyInTemplate, Control.TemplateProperty.Name)); } // Check if the template has the Style property set on the container via its visual triggers. // It is an error to specify the StyleProperty in your own Template. if (StyleHelper.IsSetOnContainer(FrameworkElement.StyleProperty, ref containerDependents, true)) { throw new InvalidOperationException(SR.Get(SRID.CannotHavePropertyInTemplate, FrameworkElement.StyleProperty.Name)); } // Check if the template has the DefaultStyleKey property set on the container via its visual triggers. // It is an error to specify the DefaultStyleKeyProperty in your own Template. if (StyleHelper.IsSetOnContainer(FrameworkElement.DefaultStyleKeyProperty, ref containerDependents, true)) { throw new InvalidOperationException(SR.Get(SRID.CannotHavePropertyInTemplate, FrameworkElement.DefaultStyleKeyProperty.Name)); } // Check if the template has the OverridesDefaultStyle property set on the container via its visual triggers. // It is an error to specify the OverridesDefaultStyleProperty in your own Template. if (StyleHelper.IsSetOnContainer(FrameworkElement.OverridesDefaultStyleProperty, ref containerDependents, true)) { throw new InvalidOperationException(SR.Get(SRID.CannotHavePropertyInTemplate, FrameworkElement.OverridesDefaultStyleProperty.Name)); } // Check if the template has the Name property set on the container via its visual triggers. // It is an error to specify the Name in your own Template. if (StyleHelper.IsSetOnContainer(FrameworkElement.NameProperty, ref containerDependents, true)) { throw new InvalidOperationException(SR.Get(SRID.CannotHavePropertyInTemplate, FrameworkElement.NameProperty.Name)); } }
/// <summary> /// Releases all resources used by this class. /// </summary> public void Dispose() { regInfo = null; triggers = null; settings = null; principal = null; actions = null; if (v2Def != null) Marshal.ReleaseComObject(v2Def); v1Task = null; }
// // This method // 1. Adds shared table entries for property values set via Triggers // private static void ProcessTemplateTriggers( TriggerCollection triggers, FrameworkTemplate frameworkTemplate, ref FrugalStructList<ChildRecord> childRecordFromChildIndex, ref FrugalStructList<ItemStructMap<TriggerSourceRecord>> triggerSourceRecordFromChildIndex, ref FrugalStructList<ContainerDependent> containerDependents, ref FrugalStructList<ChildPropertyDependent> resourceDependents, ref ItemStructList<ChildEventDependent> eventDependents, ref HybridDictionary dataTriggerRecordFromBinding, HybridDictionary childIndexFromChildID, ref bool hasInstanceValues, ref HybridDictionary triggerActions, FrameworkElementFactory templateRoot, ref EventHandlersStore eventHandlersStore, ref FrugalMap propertyTriggersWithActions, ref HybridDictionary dataTriggersWithActions, ref bool hasLoadedChangeHandler) { if (triggers != null) { int triggerCount = triggers.Count; for (int i = 0; i < triggerCount; i++) { TriggerBase triggerBase = triggers[i]; Trigger trigger; MultiTrigger multiTrigger; DataTrigger dataTrigger; MultiDataTrigger multiDataTrigger; EventTrigger eventTrigger; DetermineTriggerType( triggerBase, out trigger, out multiTrigger, out dataTrigger, out multiDataTrigger, out eventTrigger ); if ( trigger != null || multiTrigger != null|| dataTrigger != null || multiDataTrigger != null ) { // Update the SourceChildIndex for each of the conditions for this trigger TriggerCondition[] conditions = triggerBase.TriggerConditions; for (int k=0; k<conditions.Length; k++) { conditions[k].SourceChildIndex = StyleHelper.QueryChildIndexFromChildName(conditions[k].SourceName, childIndexFromChildID); } // Set things up to handle Setter values for (int j = 0; j < triggerBase.PropertyValues.Count; j++) { PropertyValue propertyValue = triggerBase.PropertyValues[j]; // Check for trigger rules that act on template children if (propertyValue.ChildName == StyleHelper.SelfName) { // "Self" (container) trigger // Track properties on the container that are being driven by // the Template so that they can be invalidated during Template changes StyleHelper.AddContainerDependent(propertyValue.Property, true /*fromVisualTrigger*/, ref containerDependents); } StyleHelper.UpdateTables(ref propertyValue, ref childRecordFromChildIndex, ref triggerSourceRecordFromChildIndex, ref resourceDependents, ref dataTriggerRecordFromBinding, childIndexFromChildID, ref hasInstanceValues); } // Set things up to handle TriggerActions if( triggerBase.HasEnterActions || triggerBase.HasExitActions ) { if( trigger != null ) { StyleHelper.AddPropertyTriggerWithAction( triggerBase, trigger.Property, ref propertyTriggersWithActions ); } else if( multiTrigger != null ) { for( int k = 0; k < multiTrigger.Conditions.Count; k++ ) { Condition triggerCondition = multiTrigger.Conditions[k]; StyleHelper.AddPropertyTriggerWithAction( triggerBase, triggerCondition.Property, ref propertyTriggersWithActions ); } } else if( dataTrigger != null ) { StyleHelper.AddDataTriggerWithAction( triggerBase, dataTrigger.Binding, ref dataTriggersWithActions ); } else if( multiDataTrigger != null ) { for( int k = 0; k < multiDataTrigger.Conditions.Count; k++ ) { Condition dataCondition = multiDataTrigger.Conditions[k]; StyleHelper.AddDataTriggerWithAction( triggerBase, dataCondition.Binding, ref dataTriggersWithActions ); } } else { throw new InvalidOperationException(SR.Get(SRID.UnsupportedTriggerInTemplate, triggerBase.GetType().Name)); } } } else if( eventTrigger != null ) { StyleHelper.ProcessEventTrigger(eventTrigger, childIndexFromChildID, ref triggerActions, ref eventDependents, templateRoot, frameworkTemplate, ref eventHandlersStore, ref hasLoadedChangeHandler); } else { throw new InvalidOperationException(SR.Get(SRID.UnsupportedTriggerInTemplate, triggerBase.GetType().Name)); } } } }
private void WriteElement(TriggerCollection triggers) { foreach (EventTrigger trigger in triggers) { WriteStartElement(trigger); //WriteAttribute("RoutedEvent", trigger.RoutedEvent.ToString()); foreach (BeginStoryboard beginStoryboard in trigger.Actions) { WriteStartElement(beginStoryboard); WriteElement(beginStoryboard.Storyboard); this.writer.WriteEndElement(); } this.writer.WriteEndElement(); } }
/// <summary> /// Sets the attached triggers. /// </summary> /// <param name="obj"> /// The dependency object. /// </param> /// <param name="triggers"> /// The triggers. /// </param> public static void SetTriggers(DependencyObject obj, TriggerCollection triggers) { obj.SetValue(TriggersProperty, triggers); }
private Optional <ConvertedClientConfigurationFile> UpdateTriggers(TriggerCollection triggers) { XElement triggersElement = null; if (_skinXml != null) { triggersElement = _skinXml.Root.Element(XmlNames.triggers); if (triggersElement == null) { triggersElement = new XElement(XmlNames.triggers); _skinXml.Root.Add(triggersElement); } } else { triggersElement = _navigationPlanXml.Root.Element(XmlNames.triggers); if (triggersElement == null) { triggersElement = new XElement(XmlNames.triggers); _navigationPlanXml.Root.AddFirst(triggersElement); } } //remove the old triggers foreach (var triggerElement in triggersElement.Elements(XmlNames.trigger) .Where(element => element.Elements(XmlNames.action) .Any(actionElement => IsDynamicLayoutActionElement(actionElement))) .ToArray()) { triggerElement.Remove(); } //add new triggers foreach (var trigger in triggers) { var triggerElement = new XElement(XmlNames.trigger); triggerElement.AddOrUpdateAttributeValue(XmlNames.name, trigger.Name); triggerElement.AddOrUpdateAttributeValue(XmlNames.priority, trigger.Priority); foreach (var action in trigger.Actions) { var actionElement = new XElement(XmlNames.action); actionElement.AddOrUpdateAttributeValue(XmlNames.name, action.Name); var conditionsElement = new XElement(XmlNames.conditions); actionElement.Add(conditionsElement); foreach (var condition in action.Conditions) { var conditionElement = new XElement(XmlNames.condition); conditionElement.AddOrUpdateAttributeValue(XmlNames.updateType, condition.UpdateType); conditionElement.AddOrUpdateAttributeValue(XmlNames.type, condition.Type); conditionElement.AddOrUpdateAttributeValue(XmlNames.equationType, condition.EquationType); if (condition.Values.Count == 1) { conditionElement.AddOrUpdateAttributeValue(XmlNames.value, condition.Values.First().Value); } else { foreach (var value in condition.Values) { conditionElement.Add(new XElement(XmlNames.value, value.Value)); } } conditionsElement.Add(conditionElement); } triggerElement.Add(actionElement); } triggersElement.Add(triggerElement); } if (_skinXml != null) { return(Optional <ConvertedClientConfigurationFile> .Some(new ConvertedClientConfigurationFile(Skin, _skinXml.ToString()))); } else { return(Optional <ConvertedClientConfigurationFile> .None()); } }
public void TestGenerateStyleTriggers() { List<TriggeringNodeDefinition> existingTriggers = DocxMetadataDefinitions.HiddenDocumentText; using (Stream from = File.Open(TESTFILE_DIR + "styles.xml", FileMode.Open)) { StyleSheet sr = new StyleSheet(new CommonNamespaces(OpenXmlFormat.Transitional)); sr.ConnectToInputStream(from); sr.Execute(); sr.Resolve(); foreach (TriggeringNodeDefinition tnd in existingTriggers) { tnd.NormalizeStrings(sr.CommonNamespaces.NameTable); } List<TriggeringNodeDefinition> newTriggers = sr.GenerateStyleTriggers(existingTriggers); Assert.AreEqual(2, newTriggers.Count); TriggeringNodeDefinition tnd1 = newTriggers[0]; Assert.AreEqual(NamespaceId.w, tnd1.namespaceId); Assert.AreEqual("rStyle", tnd1.nodeName); Assert.IsTrue(tnd1.attributeFilter.Matches(new AttribDetails("", "val", "", "FooterCharHidden"))); { MemoryStream ms = new MemoryStream(); StreamWriter tw = new StreamWriter(ms); tw.Write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:rStyle xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" w:val=\"FooterCharHidden\"/>"); tw.Flush(); ms.Position = 0; XmlReaderSettings set = new XmlReaderSettings(); set.NameTable = sr.CommonNamespaces.NameTable; set.ConformanceLevel = ConformanceLevel.Fragment; XmlReader r = XmlReader.Create(ms, set); r.Read(); XmlNodeInformation xni = new XmlNodeInformation(r, sr.CommonNamespaces); TriggerCollection snui = new TriggerCollection(newTriggers); snui.UpdateStringsUsingNametable(set.NameTable); Assert.AreEqual(1, snui.WhatDoesThisNodeTrigger(xni, null).Count); TriggeringNodeDefinition tnd = snui.WhatDoesThisNodeTrigger(xni, null)[0]; Assert.AreEqual("rStyle", tnd.nodeName); Assert.IsTrue(tnd.attributeFilter.Matches(new AttribDetails("", NameTableUtils.NormalizeString(sr.CommonNamespaces.NameTable,"val") , "", "FooterCharHidden"))); Assert.AreEqual(NamespaceId.w, tnd.namespaceId); Assert.AreEqual(1, tnd.CreateEffects( xni).Count); Effect t = tnd.CreateEffects(xni)[0]; Assert.AreEqual(ContentType.HiddenText, t.ContentType); Assert.AreEqual(true, t.BlockPolarity, "expect the polairty of blocking to be +ve as this is a style with hidden on"); } { MemoryStream ms = new MemoryStream(); StreamWriter tw = new StreamWriter(ms); tw.Write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><w:rStyle xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" w:val=\"FooterCharNotHidden\"/>"); tw.Flush(); ms.Position = 0; XmlReaderSettings set = new XmlReaderSettings(); set.NameTable = sr.CommonNamespaces.NameTable; set.ConformanceLevel = ConformanceLevel.Fragment; XmlReader r = XmlReader.Create(ms, set); XmlNodeInformation xni = new XmlNodeInformation(r, sr.CommonNamespaces); TriggerCollection snui = new TriggerCollection(newTriggers); Assert.AreEqual(1, snui.WhatDoesThisNodeTrigger(xni, null).Count); TriggeringNodeDefinition tnd = snui.WhatDoesThisNodeTrigger(xni, null)[0]; Assert.AreEqual("rStyle", tnd.nodeName); Assert.IsTrue(tnd.attributeFilter.Matches(new AttribDetails("", NameTableUtils.NormalizeString(sr.CommonNamespaces.NameTable, "val") , "", "FooterCharNotHidden"))); Assert.AreEqual(NamespaceId.w, tnd.namespaceId); Assert.AreEqual(1, tnd.CreateEffects( xni).Count); Effect t = tnd.CreateEffects( xni)[0]; Assert.AreEqual(ContentType.HiddenText, t.ContentType); Assert.AreEqual(false, t.BlockPolarity, "should have -ve polarity because the style specifies not hidden"); } Assert.AreEqual(true, existingTriggers[0].GetDescriptors()[0].DefaultPolarity, "Should not change the default polarity of the base triggerdescriptor for the non-style tag"); } }
protected abstract void ProcessResource(TriggerCollection aTriggers);
public void SelectTrigger(Trigger trigger) { SelectedTrigger = trigger; _triggers = new TriggerCollection(this, _overviewContext, _triggerRoot); _triggers.Initialize(); }
public void Refresh() { _window.Repaint(); _triggers = new TriggerCollection(this, _overviewContext, _triggerRoot); _triggers.Initialize(); }
protected abstract void ProcessResource( TriggerCollection aTriggers );
/// <summary> /// Sets the value of the Triggers attached property /// </summary> /// <param name="dependencyObject"> /// dependency object to set the value /// </param> /// <param name="value"> /// Instance of the command collection /// </param> public static void SetTriggers(DependencyObject dependencyObject, TriggerCollection value) { dependencyObject.SetValue(TriggersProperty, value); }
protected override void ProcessResource( TriggerCollection aTriggers ) { if ( !aTriggers.Any() ) return; OnCategoryProcessing( ResourceTypes.Triggers ); var document = new XElement( "Triggers", from trigger in aTriggers select new XElement( "Trigger", CreateIndexedResourceNodes( trigger ), new XElement( "Condition", EscapeText( trigger.Condition ) ), new XElement( "ConstantName", trigger.ConstantName ), new XElement( "Moment", trigger.Moment ) ) ); SaveDocument( document, Filenames.Triggers + ".xml" ); OnCategoryProcessed( ResourceTypes.Triggers ); }
// Called from either the Style-specific ExecuteOnApplyEnterActions or the // Template-specific version. This section is the common code for both that // walks through the trigger collection and execute applicable actions. private static void ExecuteOnApplyEnterExitActionsLoop( DependencyObject triggerContainer, TriggerCollection triggers, Style style, FrameworkTemplate ft, UncommonField<HybridDictionary[]> dataField ) { TriggerBase triggerBase; bool triggerState; for( int i = 0; i < triggers.Count; i++ ) { triggerBase = triggers[i]; if( (!triggerBase.HasEnterActions) && (!triggerBase.HasExitActions) ) { ; // Trigger has neither enter nor exit actions. There's nothing to run anyway, so skip. } else if( triggerBase.ExecuteEnterActionsOnApply || triggerBase.ExecuteExitActionsOnApply ) { // Look for any SourceName in the condition if( NoSourceNameInTrigger( triggerBase ) ) { // Evaluate the current state of the trigger. triggerState = triggerBase.GetCurrentState( triggerContainer, dataField ); if( triggerState && triggerBase.ExecuteEnterActionsOnApply ) { // Trigger is true, and Trigger wants EnterActions to be executed on Style/Template application. InvokeActions( triggerBase.EnterActions, triggerBase, triggerContainer, style, ft ); } else if( !triggerState && triggerBase.ExecuteExitActionsOnApply ) { // Trigger is false, and Trigger wants ExitActions to be executed on Style/Template application. InvokeActions( triggerBase.ExitActions, triggerBase, triggerContainer, style, ft ); } } else { // If one or more conditions are dependent on a template // child, then it can't possibly apply immediately. } } } }
/// <summary> /// Initializes a new instance of the <see cref="TriggerValidator"/> class. /// </summary> /// <param name="type">The type.</param> /// <param name="item">The item.</param> /// <param name="triggers">The triggers.</param> public TriggerValidator(BoundType type, IElement item, TriggerCollection triggers) { this.item = item; _type = type; _triggers = triggers; }