/// <summary> /// Loads all Keywordtriggers over all workflows /// </summary> public void LoadKeywordTriggers() { KeywordTriggers.Clear(); foreach (var workflow in Workflows) { KeywordTriggers.AddRange(workflow.Components.OfType <KeywordTrigger>().ToList()); } }
/// <summary> /// Returns all matched keywords /// </summary> /// <param name="input"></param> /// <returns></returns> public IEnumerable <ResultItem> GetKeywordTriggers(string input) { var keywordTriggers = KeywordTriggers.Where(trigger => trigger.Keyword.StartsWith(input) || input.StartsWith(trigger.Keyword)).ToList(); foreach (var trigger in keywordTriggers.Where(trigger => input.StartsWith(trigger.Keyword) && trigger.Autorun).ToList()) { Task.Run(() => trigger.Run(trigger.GetArgumentsFromInput(input))); keywordTriggers.Remove(trigger); } return(keywordTriggers.Select( trigger => new MagicResultItem() { Icon = trigger.ParentWorkflow.Icon, WorkflowComponent = trigger, Subtitle = trigger.Subtitle, Title = trigger.Title, WorkflowArguments = trigger.GetArgumentsFromInput(input) })); }