在C#中访问特定属性到rest 1-v1到versionone.sdk.Api

时间:2015-03-09 15:16:19

标签: c# versionone

我正在尝试访问存储在versionOne的rest1-v1 api中的特定值。

我可以访问它,将整个地址输入我最喜欢的导航器

rest-1.v1/Data/Actual?sel=Date,Value&where=Workitem.ID='Story:114192'

返回:

<Assets total="1" pageSize="2147483647" pageStart="0">
    <Asset href="/VersionOne/rest-1.v1/Data/Actual/158630" id="Actual:158630">
        <Attribute name="Date">2014-10-23</Attribute>
        <Attribute name="Value">40</Attribute>
    </Asset>
</Assets>

我想要做的是访问上面列出的属性“Value”,但抛出了versionone.sdk.ApiClient。

我做了关于连接器(元数据和数据)的所有内容,但我真的不知道如何让我的查询返回存储在此API中的这个值。

我希望我足够清楚,

此致

1 个答案:

答案 0 :(得分:0)

        V1APIConnector dataConnector = new V1APIConnector("YourVersionOne/rest-1.v1/","username", "password");
        V1APIConnector metaConnector = new V1APIConnector("YourVersionOne/meta.v1/");

        IMetaModel metaModel = new MetaModel(metaConnector);
        IServices services = new Services(metaModel, dataConnector);
        IAssetType actualType = metaModel.GetAssetType("Actual");

        IAttributeDefinition dateAttribute = actualType.GetAttributeDefinition("Date");
        IAttributeDefinition valueAttribute = actualType.GetAttributeDefinition("Value");
        IAttributeDefinition workitemAttribute = actualType.GetAttributeDefinition("Workitem");
        Query query = new Query(actualType);

        query.Selection.Add(dateAttribute);
        query.Selection.Add(valueAttribute);

        FilterTerm term = new FilterTerm(workitemAttribute);
        term.Equal("Story:114192");
        query.Filter = term;

        QueryResult result = services.Retrieve(query);

顺便说一下,您的网址查询中不需要Workitem.ID。工作项目很好。