public async Task <List <IJob> > GetJobs() { var rules = new List <ArtifactRule>(); foreach (var ruleString in PathRules.Split('\n')) { if (string.IsNullOrEmpty(ruleString.Trim())) { continue; } rules.Add(new ArtifactRule(Condition, RepoUrl, ruleString)); } var jobs = new List <IJob>(); var artifacts = await((TeamCityApi)Server).GetArtifactsAsync(this); foreach (var file in artifacts) { foreach (var rule in rules) { var jobsForThisRule = rule.GetJobs(file.ToString()); if (jobsForThisRule != null) { jobs.AddRange(jobsForThisRule); } } } return(jobs); }
private void GetPageRules() { if (_expiryRules == null) { return; } var pageRules = _expiryRules.Children("pageExpiryRule"); if (pageRules == null) { return; } foreach (var pageRule in pageRules) { var pages = pageRule.GetPropertyValue <IEnumerable <IPublishedContent> >("pages"); foreach (var page in pages) { var rule = new PathExpiryRule() { Path = page.Url, ApplyToDescendantPages = pageRule.GetPropertyValue <bool>("applyToDescendantPages") }; if (PathRules.FirstOrDefault(alreadyAdded => alreadyAdded.Path == rule.Path && alreadyAdded.ApplyToDescendantPages == rule.ApplyToDescendantPages) == null) { var months = pageRule.GetPropertyValue <int>("months"); var days = pageRule.GetPropertyValue <int>("days"); var forceNever = pageRule.GetPropertyValue <bool>("forcePagesToNeverExpire"); if ((months > 0 || days > 0) && !forceNever) { var baseDate = DateTime.UtcNow; var basePlusExpiry = baseDate.AddMonths(months).AddDays(days); rule.MaximumExpiry = basePlusExpiry.Subtract(baseDate); } PathRules.Add(rule); } } } }
public void Reset() { UserAgents.Clear(); PathRules.Clear(); CrawlDelay = null; }