I am working on an Adobe Echosign application to demonstrate C # winforms. My code is a direct copy of the command line code (with changes), however my code returns an error after data transfer.
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 its 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 the difference between the two blocks of code? The error may be in the FileInfo[] or DocumentCreationInfo() blocks. Perhaps I do not create objects as required by the system.
Any suggestions are welcome.
source share