public RulesController(ICommandBus commandBus, IRuleEventRepository ruleEventsRepository, IRuleQueryService ruleQuery, IRuleRunnerService ruleRunnerService, RuleRegistry ruleRegistry) : base(commandBus) { this.ruleEventsRepository = ruleEventsRepository; this.ruleQuery = ruleQuery; this.ruleRunnerService = ruleRunnerService; this.ruleRegistry = ruleRegistry; }
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 RulesController(ICommandBus commandBus, IRuleEventRepository ruleEventsRepository, IRuleQueryService ruleQuery, IRuleRunnerService ruleRunnerService, RuleRegistry ruleRegistry, EventJsonSchemaGenerator eventJsonSchemaGenerator) : base(commandBus) { this.ruleEventsRepository = ruleEventsRepository; this.ruleQuery = ruleQuery; this.ruleRunnerService = ruleRunnerService; this.ruleRegistry = ruleRegistry; this.eventJsonSchemaGenerator = eventJsonSchemaGenerator; }
public LinkVerifierService(string repositoryPath, string readmeRelativePath = null) { var repository = new FileRepository(repositoryPath); readmeRelativePath = readmeRelativePath ?? README_DEFAILT_PATH; var readmeFilePath = Path.Combine(repository.GetRepositoryPath(), readmeRelativePath); readmeFile = new CodeSampleRemoverReadmeFile(new ReadmeFile(readmeFilePath, readmeRelativePath)); var rules = new List <ILinkRule> { new RepositoryLinkRule(repository, readmeFile), new ReadmeFileLinkRules(readmeFile.GetAllText()) }; if (Utils.IsInternetConnected()) { rules.Add(new InternetLinkRule()); } ruleRunner = new RuleRunner(rules); }
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); }
public static async Task <RulesDto> FromRulesAsync(IEnumerable <IEnrichedRuleEntity> items, IRuleRunnerService ruleRunnerService, Resources resources) { var runningRuleId = await ruleRunnerService.GetRunningRuleIdAsync(resources.Context.App.Id); var result = new RulesDto { Items = items.Select(x => RuleDto.FromRule(x, runningRuleId == null, ruleRunnerService, resources)).ToArray() }; result.RunningRuleId = runningRuleId; return(result.CreateLinks(resources, runningRuleId)); }