使用Atlassian.SDK向Jira搜索查询添加自定义字段

时间:2019-05-21 22:10:28

标签: c# jira jql atlassian-plugin-sdk

我正在Web应用程序中使用Atlassian.Jira NuGet软件包。

我可以使用内置字段(例如Project,ResolutionDate等)成功查询Jira,但不能使用自定义字段。

我有一个名为“ Organizations”的自定义字段,我想将此字段添加到我的查询中,使其等于某个字符串。

这是我的查询:

var issues = from i in jira.Issues.Queryable
where i.Created >= dateFrom &&
i.Created <= dateTo && i.Type != "Change" && i["Organizations"] == organization
select i;

我尝试了以下方法:

i["Organizations"] == organization
  

返回400。不支持运算符〜。


i["Organizations"].ToString == organization
  

回报指数超出范围。必须为非负且小于   集合的大小。

听起来没有任何回报,但我可以在门户网站中看到问题。


我也尝试过:

i.CustomFields["Organizations"].Values[0] == organization
  
      
  1. 响应内容:{“ errorMessages”:[“ JQL查询中的错误:期望一个字段名,但是得到了')'。必须在引号中加上')'   标记以将其用作字段名称
  2.   

尽管我不认为应该以这种方式使用它。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

尝试使用LiteralMatch而不是==。 LiteralMatch就像JQL中的〜运算符。

where i.Created >= dateFrom &&
i.Created <= dateTo && i.Type != "Change" && i["Organizations"] == new LiteralMatch(organization)
select i;

答案 1 :(得分:0)

我遇到了同样的问题。我通过此查询解决:

List<Issue> list = (from i in (IQueryable<Issue>)jira.Issues.Queryable
                                    where i.Project == ProcessConfiguration.ParentProjectKey
                                    && (DateTime)i.Created >= (DateTime)jiraSelectInputDto[0].FromDate
                                    && (DateTime)i.Created <= (DateTime)jiraSelectInputDto[0].ToDate
                                    && i["Customer"] == new LiteralMatch(cusProvince.Province)
                                    orderby i.Key descending
                                    select i).ToList();