public Task ProcessAsync(Element definition, ElementState result) { //result.Status = Status.Ok; var rules = new Rules.RuleProcessor(definition.StateRules); rules.Run(result); return(Task.CompletedTask); }
public Task ProcessAsync(Element definition, IEnumerable <ElementState> states) { var rules = new Rules.RuleProcessor(definition.StateRules); foreach (var result in states) { //result.Status = Status.Ok; rules.Run(result); } return(Task.CompletedTask); }
protected void BringResults(Message message) { var rootItem = RootItemDataContext.GetFolder(); // Activate buttons btnExecuteAll.Disabled = btnExecuteSelected.Disabled = btnSelectAll.Disabled = false; // Switch Context DB for the query var currentDb = Context.Database; Context.Database = rootItem.Database; // Execute query var query = rootItem.GetItemXPath() + "//*"; var scQuery = new Query(query) { Max = 100000 }; var queryResult = scQuery.Execute(); // Get Items from Query var allItems = new List<Item>(); if (queryResult.GetType() == typeof(QueryContext)) allItems.Add(((QueryContext)queryResult).GetQueryContextItem()); else allItems = ((QueryContext[])queryResult).Select(p => p.GetQueryContextItem()).ToList(); allItems.Insert(0, rootItem); // Switch Context DB back Context.Database = currentDb; // Render results ResultItems.Controls.Clear(); var processor = new Rules.RuleProcessor(Rules, RuleItem); foreach (var item in allItems) { if (!processor.ValidateRule(item)) continue; // Create and add the new ListviewItem control to the Listview. // We have to assign an unique ID to each control on the page. var listItem = new ListviewItem(); Context.ClientPage.AddControl(ResultItems, listItem); listItem.ID = Control.GetUniqueID("I"); // Populate the list item with data. listItem.Header = item.Name; listItem.Icon = item.Appearance.Icon; listItem.Value = item.ID.ToString(); listItem.ColumnValues["path"] = item.Paths.Path; listItem.ColumnValues["language"] = item.Language.Name; listItem.ColumnValues["version"] = item.Version.ToString(); } // We need to replace the html in order to avoid duplicate ID's Context.ClientPage.ClientResponse.SetOuterHtml("ItemList", ResultItems); ResultItems.Refresh(); }