The best performing means of getting document status is to use DocumentTRAK to push notifications to your self hosted service. In this example, we call CheckStatus on 3 documents at once.
Given the following local class to hold document metadata ...
private class aDocumentClass
{
public Guid documentID { get; set; }
public Guid authToken { get; set; }
public string status{ get; set; }
public aDocumentClass(Guid docID, Guid authT)
{
this.authToken = authT;
this.documentID = docID;
}
}
... the following calls CheckStatus on 3 documents at once ...
// force TLS 1.2 if .net < 4.6
ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
List<aDocumentClass> documents = new List<aDocumentClass>();
// 3 different documents, with their authtokens
documents.Add(new aDocumentClass(new Guid("691EC525-1F67-418C-9E05-A7CA01269A52"), new Guid("AF38B382-21F8-4A26-BE43-531F29498DE3")));
documents.Add(new aDocumentClass(new Guid("E070DCDC-4CF2-46B7-A659-A7CA0126F422"), new Guid("852AD083-2093-4A03-9A75-C829213F02C2")));
documents.Add(new aDocumentClass(new Guid("55135265-ABE3-48DD-9911-A7CF00FE4459"), new Guid("152D5DDE-01BF-4BCE-99BF-F3F35F4E4E79")));
Guid ContextIdentifier = new Guid(<fromYourAccount>);
DocNow.CheckStatusServiceClient client = new DocNow.CheckStatusServiceClient();
DocNow.DocumentStatusChecke] checks = new DocNow.DocumentStatusCheckedocuments.Count];
int i = 0;
foreach (aDocumentClass doc in documents)
{
checksci] = new DocNow.DocumentStatusCheck();
checksci].Id = doc.documentID;
checksci].AuthToken = doc.authToken;
checksci].ContextIdentifier = ContextIdentifier;
i++;
}
DocNow.DocumentStatusCheckResultu] results = client.CheckStatus(checks);
if(results.Length>0)
{
foreach(DocNow.DocumentStatusCheckResult result in results)
{
if(result.Exceptions != null)
{
StringBuilder sb = new StringBuilder();
foreach (DocNow.StatusCheckException exception in result.Exceptions)
{
sb.AppendFormat("{0} : {1}{2}", exception.Severity.ToString(), exception.Value, Environment.NewLine);
}
Console.WriteLine(sb.ToString());
}
else
{
var document = documents.Find(x => x.documentID.Equals(result.Id));
if(document != null)
{
document.status = result.StatusType.ToString();
}
}
}
// now go do something with your documents List
}