gpt4 book ai didi

c# - VersionOne API 客户端的附件

转载 作者:行者123 更新时间:2023-11-30 20:53:46 27 4
gpt4 key购买 nike

有人可以展示一些示例代码,说明如何使用 API 客户端将外部文件附加到版本一请求吗?假设我们已经有了文件名和票证 ID。我发现这是通过 ObjectModel 完成的,但不是我可以通过 API 客户端理解的任何代码。

最佳答案

此示例将 rtf 文件附加到项目(范围)。您必须将范围更改为您选择的 Assets (可能是故事或缺陷)。这里我有 OID,而不是 ID。您可以查询 ID.Number(例如 B-1234),如果您有的话。

using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VersionOne.SDK.APIClient;

namespace SampleAttachment
{

class Program
{

private static readonly string ApplicationURL = "https://myversionone/";

private static readonly string _username = "username";

private static readonly string _password = "passwerd";

private static readonly bool _integrated = false;



static void Main(string[] args)
{

//string file = args[0];
string file = @"C:\Users\MIRVIN\Desktop\Training Wheels\SampleAttachment\bin\Debug\testfile.rtf";

if (File.Exists(file))
{

Console.WriteLine("Uploading {0}", file);
string mimeType = MimeType.Resolve(file);

IMetaModel metaModel = new MetaModel(new V1APIConnector(ApplicationURL + "meta.v1/"));
IServices services = new Services(metaModel, new V1APIConnector(ApplicationURL + "rest-1.v1/", _username, _password, _integrated));
IAttachments attachments = new Attachments(new V1APIConnector(ApplicationURL + "attachment.img/", _username, _password, _integrated));


//cleanjeans scope
Oid attachmentContext = Oid.FromToken("Scope:5067", metaModel);



IAssetType attachmentType = metaModel.GetAssetType("Attachment");

IAttributeDefinition attachmentNameDef = attachmentType.GetAttributeDefinition("Name");

IAttributeDefinition attachmentContentDef = attachmentType.GetAttributeDefinition("Content");

IAttributeDefinition attachmentContentTypeDef = attachmentType.GetAttributeDefinition("ContentType");

IAttributeDefinition attachmentFileNameDef = attachmentType.GetAttributeDefinition("Filename");



Asset newAttachment = services.New(attachmentType, attachmentContext);

newAttachment.SetAttributeValue(attachmentNameDef, "New Attachment");

newAttachment.SetAttributeValue(attachmentContentDef, string.Empty);

newAttachment.SetAttributeValue(attachmentContentTypeDef, mimeType);

newAttachment.SetAttributeValue(attachmentFileNameDef, file);

services.Save(newAttachment);

//Setup and attach the payload

string attachmentKey = newAttachment.Oid.Key.ToString();
int buffersize = 4096;

using (FileStream input = new FileStream(file, FileMode.Open, FileAccess.Read))
{

using (Stream output = attachments.GetWriteStream(attachmentKey))
{

byte[] buffer = new byte[buffersize];

for (; ; )
{

int read = input.Read(buffer, 0, buffersize);

if (read == 0)

break;

output.Write(buffer, 0, read);

}

}

}

attachments.SetWriteStream(attachmentKey, mimeType);



Console.WriteLine("{0} uploaded", file);

}

else

Console.WriteLine("{0} does not exist", file);

}

}

}

关于c# - VersionOne API 客户端的附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19691205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com