Web Services - Ws - PDocDetailApi.GetPddList
Sample C# code to use the web service - similar code will work for all the web services except uploading documents. Note the ability to loop through model validation errors.
private const string myUserName = "myUserName";
private const string myPassword = "password";
string myUrlPrefix = "https://documentvacuum.com/";
public ActionResult GetPDocDetailApi()
{
int pDocId = 911; //make sure this is a valid PDocId
string entityId="abcd"; //make sure this is a valid unique entityId
HttpClient client = new HttpClient();
//use either PDocId or EntityId to find the record
string myUrlSuffix = “PDocDetailApi/GetPddList?”
"id=" + pDocId + "&identityColumn=PDocId";
//string myUrlSuffix = “PDocDetailApi/GetPddList?” +
// "id=" + entityId +"&identityColumn=EntityId";
string myUrl = myUrlPrefix + myUrlSuffix;
var buffer = System.Text.Encoding.ASCII.GetBytes(myUserName + ":" + myPassword);
var authHeader = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic",
Convert.ToBase64String(buffer));
client.DefaultRequestHeaders.Authorization = authHeader;
client.DefaultRequestHeaders.Accept.Add(new
System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
try
{
var task = client.GetAsync(myUrl);
HttpStatusCode statusCode = task.Result.StatusCode;
var output = task.Result.Content.ReadAsStringAsync().Result;
if (statusCode == HttpStatusCode.OK)
{
string outcome = "Success";
//While the list will normally have one element, it is possible that there are two, the
//first originally created with a pdf document, and then when the text contents are not
//extractable this goes to status 27 and a second is created to extract text using the image
//rather than embedded text
List<PDocDetailApi> pddApiList =
JsonConvert.DeserializeObject<List<PDocDetailApi>>(output);
//if a document has completed processing successfully, it will be shown below
PDocDetailApi pddApiSuccess = pddApiList.Where(x =>
x.PDocStatusId == 21).FirstOrDefault();
}
else if (statusCode == HttpStatusCode.Unauthorized)
{
string outcome = "Bad login credentials or insufficient account permissions";
}
else if (statusCode == HttpStatusCode.BadRequest)
{
string outcome = "There was a problem with the information submitted";
BnieModelStateError outcome2 =
HelperFunction.JsonDeserialize<BnieModelStateError>(output);
if (outcome2.Errors != null && outcome2.Errors.Count > 0)
{
for (int i=0; i < outcome2.Errors.Count; i++)
{
string modelValidationError = outcome2.Errors.ElementAt(i).Value[0];
}
}
}
else if (statusCode == HttpStatusCode.NotFound)
{
string outcome = "We could not find any pDocDetails that match";
}
else if (statusCode == HttpStatusCode.InternalServerError)
{
string outcome = "Something else went wrong";
}
}
catch (Exception e)
{
string s = e.Message;
}
return RedirectToAction("Index");
}
more