private static void ApplyMilestone(IssueFilter filter, BoundKevValueQuery query) { if (query.IsNegated) { filter.ExcludedMilestones.Add(query.Value); } else { filter.Milestone = query.Value; } }
private static void ApplyArea(IssueFilter filter, BoundKevValueQuery query) { if (query.IsNegated) { filter.ExcludedLabels.Add($"area-{query.Value}"); } else { filter.IncludedLabels.Add($"area-{query.Value}"); } }
private static void ApplyAuthor(IssueFilter filter, BoundKevValueQuery query) { if (query.IsNegated) { filter.ExcludedAuthors.Add(query.Value); } else { filter.Author = query.Value; } }
private static void ApplyAreaOwner(IssueFilter filter, BoundKevValueQuery query) { if (query.IsNegated) { filter.ExcludedAreaOwners.Add(query.Value); } else { filter.IncludedAreaOwners.Add(query.Value); } }
private static void Apply(IssueFilter result, BoundKevValueQuery expression) { var key = expression.Key.ToLowerInvariant(); var value = expression.Value.ToLowerInvariant(); if (_keyValueHandlers.TryGetValue((key, value), out var handler) || _keyValueHandlers.TryGetValue((key, null), out handler)) { handler(result, expression); return; } Apply(result, new BoundTextQuery(expression.IsNegated, $"{key}:{value}")); }
private static void Apply(IssueFilter result, BoundTextQuery expression) { var terms = TextTokenizer.Tokenize(expression.Text); foreach (var term in terms) { if (expression.IsNegated) { result.ExcludedTerms.Add(term); } else { result.IncludedTerms.Add(term); } } }
private static IssueFilter CreateFilter(BoundQuery node) { var result = new IssueFilter(); foreach (var and in FlattenAnds(node)) { switch (and) { case BoundKevValueQuery kevValueExpression: Apply(result, kevValueExpression); break; case BoundTextQuery textExpression: Apply(result, textExpression); break; default: throw new Exception($"Unexpected node {and.GetType()}"); } } return(result); }
private static void ApplySortReactionsHeartDesc(IssueFilter filter) { filter.Sort.Add(IssueSort.ReactionsHeartDescending); }
private static void ApplySortReactionsTada(IssueFilter filter) { filter.Sort.Add(IssueSort.ReactionsTadaAscending); }
private static void ApplyGroupSortKey(IssueFilter filter) { filter.GroupSort.Add(IssueGroupSort.KeyAscending); }
private static void ApplyNoLabel(IssueFilter filter, BoundKevValueQuery query) { filter.NoLabels = !query.IsNegated; }
private static void ApplyGroupLabel(IssueFilter filter) { filter.Groups.Add(IssueGroup.Label); }
private static void ApplyGroupAreaNode(IssueFilter filter) { filter.Groups.Add(IssueGroup.AreaNode); }
private static void ApplyGroupAuthor(IssueFilter filter) { filter.Groups.Add(IssueGroup.Author); }
private static void ApplyGroupOrg(IssueFilter filter) { filter.Groups.Add(IssueGroup.Org); }
private static void ApplySortReactionsThinkingFaceDesc(IssueFilter filter) { filter.Sort.Add(IssueSort.ReactionsThinkingFaceDescending); }
private static void ApplyNoAreaOwner(IssueFilter filter, BoundKevValueQuery query) { filter.NoAreaOwner = !query.IsNegated; }
private static void ApplyNoMilestone(IssueFilter filter, BoundKevValueQuery query) { filter.NoMilestone = !query.IsNegated; }
private static void ApplySortInteractionsDesc(IssueFilter filter) { filter.Sort.Add(IssueSort.InteractionsDescending); }
private static void ApplyClosed(IssueFilter filter, BoundKevValueQuery query, RangeSyntax <DateTimeOffset> range) { filter.Closed = range.Negate(query.IsNegated); }
private static void ApplyGroupRepo(IssueFilter filter) { filter.Groups.Add(IssueGroup.Repo); }
private static void ApplyComments(IssueFilter filter, BoundKevValueQuery query, RangeSyntax <int> range) { filter.Comments = range.Negate(query.IsNegated); }
private static void ApplyGroupAssignee(IssueFilter filter) { filter.Groups.Add(IssueGroup.Assignee); }
private static void ApplyInteractions(IssueFilter filter, BoundKevValueQuery query, RangeSyntax <int> range) { filter.Interactions = range.Negate(query.IsNegated); }
private static void ApplyGroupMilestone(IssueFilter filter) { filter.Groups.Add(IssueGroup.Milestone); }
private static void ApplySortCreated(IssueFilter filter) { filter.Sort.Add(IssueSort.CreatedAscending); }
private static void ApplyGroupAreaOwner(IssueFilter filter) { filter.Groups.Add(IssueGroup.AreaOwner); }
private static void ApplySortUpdatedDesc(IssueFilter filter) { filter.Sort.Add(IssueSort.UpdatedDescending); }
private static void ApplyGroupSortCountDesc(IssueFilter filter) { filter.GroupSort.Add(IssueGroupSort.CountDescending); }
private static void ApplySortCommentsDesc(IssueFilter filter) { filter.Sort.Add(IssueSort.CommentsDescending); }