Example #1
0
 public JiraQueryProvider(IJira jira, IJiraMetadataProvider metadataProvider,
                          LoggingSettings?loggingSettings = null)
 {
     this.jira             = jira;
     this.metadataProvider = metadataProvider;
     this.loggingSettings  = loggingSettings;
 }
Example #2
0
 public FilterPredicateAnalyzer(IJiraMetadataProvider metadataProvider, QueryBuilder queryBuilder,
                                IQuerySource parentQuerySource)
 {
     this.metadataProvider  = metadataProvider;
     this.queryBuilder      = queryBuilder;
     this.parentQuerySource = parentQuerySource;
 }
Example #3
0
 public MockJira(string fakeJiraUrl, JiraUser authorizedUser,
                 IJiraIssueStore store, IJiraMetadataProvider metadataProvider)
 {
     this.store            = store;
     this.fakeJiraUrl      = fakeJiraUrl;
     this.authorizedUser   = authorizedUser;
     this.metadataProvider = metadataProvider;
 }
Example #4
0
 public static IQueryProvider CreateQueryProvider(IJiraMetadataProvider metadataProvider,
                                                  Func <BuiltQuery, IEnumerable> execute)
 {
     if (queryParser == null)
     {
         queryParser = CreateQueryParser();
     }
     return(new RelinqQueryProvider(queryParser, new RelinqQueryExecutor(metadataProvider, execute)));
 }
Example #5
0
 public QueryModelVisitor(IJiraMetadataProvider metadataProvider, QueryBuilder queryBuilder,
                          IQuerySource parentSource)
 {
     this.queryBuilder       = queryBuilder;
     filterPredicateAnalyzer = new FilterPredicateAnalyzer(metadataProvider, queryBuilder, parentSource);
     memberAccessBuilder     = new MemberAccessBuilder(metadataProvider);
     propertiesExtractor     = new PropertiesExtractingVisitor(memberAccessBuilder);
     isSubQuery = parentSource != null;
 }
Example #6
0
        public static JqlCommand Compile(string jql, IJiraMetadataProvider metadataProvider)
        {
            var ast = JqlParser.Parse(jql);

            if (ast == null)
            {
                return(new JqlCommand(null, null));
            }
            var visitor = new JqlCompiler(metadataProvider);

            if (!(ast is JqlExpression jqlExpression))
            {
                throw new JqlCompilationException($"query [{jql}] is not compiled");
            }

            Func <JiraIssueDto[], JiraIssueDto, bool> filter = null;

            if (jqlExpression.Filter != null)
            {
                visitor.Visit(jqlExpression.Filter);
                if (visitor.filters.Count != 1)
                {
                    throw new JqlCompilationException($"query [{jql}] is not compiled");
                }
                filter = visitor.filters.Pop();
            }

            JqlOrdering[] ordering = null;
            if (jqlExpression.OrderBy != null)
            {
                visitor.Visit(jqlExpression.OrderBy);
                if (visitor.ordering.Count == 0)
                {
                    throw new JqlCompilationException($"query [{jql}] is not compiled");
                }
                ordering = visitor.ordering.ToArray();
            }

            return(new JqlCommand(filter, ordering));
        }
Example #7
0
 public static IMockJira InMemory(string fakeHostUrl, JiraUser authorizedUser,
                                  IJiraMetadataProvider metadataProvider)
 {
     return(new MockJira(fakeHostUrl, authorizedUser, new InMemoryJiraIssueStore(), metadataProvider));
 }
Example #8
0
 public static IMockJira File(string folderPath, string fakeHostUrl, JiraUser authorizedUser,
                              IJiraMetadataProvider metadataProvider)
 {
     return(new MockJira(fakeHostUrl, authorizedUser, new FileJiraIssueStore(folderPath), metadataProvider));
 }
Example #9
0
 private JqlCompiler(IJiraMetadataProvider metadataProvider)
 {
     this.metadataProvider = metadataProvider;
 }
 public RelinqQueryExecutor(IJiraMetadataProvider metadataProvider, Func <BuiltQuery, IEnumerable> execute)
 {
     this.metadataProvider = metadataProvider;
     this.execute          = execute;
 }