Ejemplo n.º 1
0
 /// <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());
     }
 }
Ejemplo n.º 2
0
        /// <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)
            }));
        }