public static RuleDto FromRule(IEnrichedRuleEntity rule, ApiController controller, string app) { var result = new RuleDto(); SimpleMapper.Map(rule, result); SimpleMapper.Map(rule.RuleDef, result); if (rule.RuleDef.Trigger != null) { result.Trigger = RuleTriggerDtoFactory.Create(rule.RuleDef.Trigger); } return(result.CreateLinks(controller, app)); }
public static RuleDto FromRule(IEnrichedRuleEntity rule, bool canRun, IRuleRunnerService ruleRunnerService, Resources resources) { var result = new RuleDto(); SimpleMapper.Map(rule, result); SimpleMapper.Map(rule.RuleDef, result); if (rule.RuleDef.Trigger != null) { result.Trigger = RuleTriggerDtoFactory.Create(rule.RuleDef.Trigger); } return(result.CreateLinks(resources, rule, canRun, ruleRunnerService)); }
public static RuleDto FromRule(IEnrichedRuleEntity rule, Guid?runningRuleId, Resources resources) { var result = new RuleDto(); SimpleMapper.Map(rule, result); SimpleMapper.Map(rule.RuleDef, result); if (rule.RuleDef.Trigger != null) { result.Trigger = RuleTriggerDtoFactory.Create(rule.RuleDef.Trigger); } return(result.CreateLinks(resources, runningRuleId)); }
private RuleDto CreateLinks(Resources resources, IEnrichedRuleEntity rule, bool canRun, IRuleRunnerService ruleRunnerService) { var values = new { app = resources.App, id = Id }; if (resources.CanDisableRule) { if (IsEnabled) { AddPutLink("disable", resources.Url <RulesController>(x => nameof(x.DisableRule), values)); } else { AddPutLink("enable", resources.Url <RulesController>(x => nameof(x.EnableRule), values)); } } if (resources.CanUpdateRule) { AddPutLink("update", resources.Url <RulesController>(x => nameof(x.PutRule), values)); } if (resources.CanReadRuleEvents) { AddPutLink("trigger", resources.Url <RulesController>(x => nameof(x.TriggerRule), values)); if (canRun && ruleRunnerService.CanRunRule(rule)) { AddPutLink("run", resources.Url <RulesController>(x => nameof(x.PutRuleRun), values)); } if (canRun && ruleRunnerService.CanRunFromSnapshots(rule)) { var snaphshotValues = new { values.app, values.id, fromSnapshots = true }; AddPutLink("run/snapshots", resources.Url <RulesController>(x => nameof(x.PutRuleRun), snaphshotValues)); } AddGetLink("logs", resources.Url <RulesController>(x => nameof(x.GetEvents), values)); } if (resources.CanDeleteRule) { AddDeleteLink("delete", resources.Url <RulesController>(x => nameof(x.DeleteRule), values)); } return(this); }