使用 C# 移动信封 - 如何将 XML/JSON 请求和“PUT”方法转换为有效的 C# 代码
本文关键字:PUT 求和 方法 代码 有效 请求 转换 JSON 移动 XML 使用 | 更新日期: 2023-09-27 18:34:18
首先,我的代码:
string accountID = loginInfo.LoginAccounts[0].AccountId;
Console.WriteLine("Account ID:" + accountID);
FoldersApi foldApi = new FoldersApi();
var folders = foldApi.List(accountID);
//this is pointing to my "Sent" folder
string folderID = folders.Folders[1].FolderId;
var envID = foldApi.ListItems(accountID, folderID);
foreach (FolderItem fi in envID.FolderItems)
{
EnvelopesApi envApi = new EnvelopesApi();
EnvelopeDocumentsResult docsList = envApi.ListDocuments(accountID, fi.EnvelopeId);
Recipients listRecip = envApi.ListRecipients(accountID, fi.EnvelopeId);
string listOfInfo = "";
Envelope myEnv = envApi.GetEnvelope(accountID, fi.EnvelopeId);
if (myEnv.Status == "completed")
{
foreach (var signer in listRecip.Signers)
{
var listTabs = envApi.ListTabs(accountID, fi.EnvelopeId, signer.RecipientId);
foreach (var tab in listTabs.TextTabs)
{
//listOfInfo is for each specific document, just to view results
listOfInfo += tab.TabLabel + " - " + tab.Value + " 'n ";
//bigString is an aggregation of all documents tab values
bigString += tab.TabLabel + " - " + tab.Value + " 'n ";
}
Console.WriteLine("Stop here");//breakpoint
}
//Move code should go here.
}
}
目前,我的代码进入我的帐户,获取所有文件夹的列表,然后指向我的"已发送"文件夹。之后,我查看已发送文件夹中的所有文档,检查它们的状态是否为"已完成",如果是,则"进入"该文档并删除我放置在文档上的文本选项卡中的所有信息。
关于我的问题!在我删除了我需要的信息后,注释"//移动代码应该放在这里",我想从我的"已发送"文件夹(文件夹[1])中移动一个信封并将其放入我的"已加载"文件夹(文件夹[3])。
我已审查 : https://www.docusign.com/p/RESTAPIGuide/RESTAPIGuide.htm#REST%20API%20References/Move%20Envelope.htm
但我无法理解如何将 XML/JSON 请求和"PUT"方法转换为有效的 C# 代码。
任何协助将不胜感激。谢谢
-凯尔。
更新的代码。
Console.WriteLine("Account ID:" + accountID);
FoldersApi foldApi = new FoldersApi();
//create fr object
FoldersRequest fr = new FoldersRequest();
//instantiate EnvelopeIds string list, to a new string list..
fr.EnvelopeIds = new List<string>();
//get folders
var folders = foldApi.List(accountID);
string sentFolderID = "";
string loadedFolderID = "";
foreach (var fold in folders.Folders)
{//get sent/loaded folder IDs
if (fold.Name == "Sent Items") { sentFolderID = fold.FolderId; }
else if(fold.Name == "Loaded") { loadedFolderID = fold.FolderId; }
}
//list the items in the folder
var envID = foldApi.ListItems(accountID, sentFolderID);
//for each item in the folder...
foreach (FolderItem fi in envID.FolderItems)
{
EnvelopesApi envApi = new EnvelopesApi();
//get a list of documents in the envelope
EnvelopeDocumentsResult docsList = envApi.ListDocuments(accountID, fi.EnvelopeId);
//list recipients
Recipients listRecip = envApi.ListRecipients(accountID, fi.EnvelopeId);
string listOfInfo = "";
Envelope myEnv = envApi.GetEnvelope(accountID, fi.EnvelopeId);
if (myEnv.Status == "completed")
{
foreach (var signer in listRecip.Signers)
{
var listTabs = envApi.ListTabs(accountID, fi.EnvelopeId, signer.RecipientId);
foreach (var tab in listTabs.TextTabs)
{
//get info out of document
listOfInfo += tab.TabLabel + " - " + tab.Value + " 'n ";
bigString += tab.TabLabel + " - " + tab.Value + " 'n ";
}
Console.WriteLine("Stop here");//breakpoint
}
//add this envelope ID to the list of envelopes to be moved
fr.EnvelopeIds.Add(myEnv.EnvelopeId);
}
}
//move all the envelopes in the list
if (fr.EnvelopeIds.Count >= 1) { foldApi.MoveEnvelopes(accountID, loadedFolderID, fr); }
我找到了一个解决方案。