I am working on a Adobe Echosign demo C# winforms application. My code is a direct copy of their command line code (with modifications), however, my code returns an error after it transmits the data.
This is the command line code from EchoSign that works
public static void sendDocument(string apiKey, string fileName, string formFieldLayerTemplateKey, string recipient)
{
FileStream file = getTestPdfFile(fileName);
secure.echosign.com.FileInfo[] fileInfos = new secure.echosign.com.FileInfo[1];
fileInfos[0] = new secure.echosign.com.FileInfo(fileName, null, file);
SenderInfo senderInfo = null;
string[] recipients = new string[1];
recipients[0] = recipient;
DocumentCreationInfo documentInfo = new DocumentCreationInfo(
recipients,
testPrefix + Path.GetFileName(file.Name),
testMessage,
fileInfos,
SignatureType.ESIGN,
SignatureFlow.SENDER_SIGNATURE_NOT_REQUIRED
);
if (formFieldLayerTemplateKey != null)
{
secure.echosign.com.FileInfo[] formFieldLayerTemplates = new secure.echosign.com.FileInfo[1];
formFieldLayerTemplates[0] = new secure.echosign.com.FileInfo(formFieldLayerTemplateKey);
documentInfo.formFieldLayerTemplates = formFieldLayerTemplates;
}
DocumentKey[] documentKeys;
documentKeys = ES.sendDocument(apiKey, senderInfo, documentInfo);
Console.WriteLine("Document key is: " + documentKeys[0].documentKey);
}
This is my code block that returns an error from their system:
public static void sendDocument(string apiKey, string fileName, string formFieldLayerTemplateKey, string recipient)
{
try
{
SenderInfo senderInfo = new SenderInfo();
senderInfo = null;
FileStream FileToSign = getTestPdfFile(fileName);
byte[] bytes = System.IO.File.ReadAllBytes("C:\\PROJECTS\\TestFile.pdf");
secure.echosign.com.FileInfo[] fileInfos = new secure.echosign.com.FileInfo[1];
fileInfos[0] = new EchoSignTest.secure.echosign.com.FileInfo();
fileInfos[0].fileName = fileName;
fileInfos[0].mimeType = null;
fileInfos[0].file = bytes;
RecipientInfo[] docRecipient = new RecipientInfo[1];
docRecipient[0] = new RecipientInfo();
docRecipient[0].email = recipient;
DocumentCreationInfo documentInfo = new DocumentCreationInfo();
documentInfo.recipients = docRecipient;
documentInfo.name = testPrefix + Path.GetFileName(FileToSign.Name);
documentInfo.message = testMessage;
documentInfo.fileInfos = fileInfos;
documentInfo.signatureType = SignatureType.ESIGN;
documentInfo.signatureFlow = SignatureFlow.SENDER_SIGNATURE_NOT_REQUIRED;
if (formFieldLayerTemplateKey != null)
{
secure.echosign.com.FileInfo[] formFieldLayerTemplates = new secure.echosign.com.FileInfo[1];
formFieldLayerTemplates[0] = new secure.echosign.com.FileInfo();
formFieldLayerTemplates[0].formKey = formFieldLayerTemplateKey;
documentInfo.formFieldLayerTemplates = formFieldLayerTemplates;
}
EchoSignDocumentService19PortTypeClient ES = new EchoSignDocumentService19PortTypeClient();
DocumentKey[] documentKeys = new DocumentKey[1];
documentKeys = ES.sendDocument(apiKey, senderInfo, documentInfo);
Console.WriteLine("Document key is: " + documentKeys[0].documentKey);
}
catch (NullReferenceException ex)
{
string errMessage = ex.Message;
}
catch (Exception ex)
{
string errMessage = ex.Message;
}
}
What is different between the two code blocks? The error may reside in the FileInfo[]
or DocumentCreationInfo()
blocks. I am perhaps not creating the objects as the system requires.
Any suggestions are appreciated.