Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }