override public void Execute() { // Signer with 1 attachment requirement signer = SignerBuilder.NewSignerWithEmail(email1) .WithFirstName("John") .WithLastName("Smith") .WithCustomId(SIGNER_ID) .WithAttachmentRequirement(AttachmentRequirementBuilder.NewAttachmentRequirementWithName(NAME) .WithDescription(DESCRIPTION) .IsRequiredAttachment() .Build()).Build(); DocumentPackage superDuperPackage = PackageBuilder.NewPackageNamed(PackageName) .DescribedAs("This is a package created using the eSignLive SDK") .WithSigner(signer) .WithDocument(DocumentBuilder.NewDocumentNamed("test document") .FromStream(fileStream1, DocumentType.PDF) .WithSignature(SignatureBuilder.SignatureFor(email1) .Build()) .Build()) .Build(); packageId = OssClient.CreateAndSendPackage(superDuperPackage); retrievedPackage = OssClient.GetPackage(packageId); signerAtt = retrievedPackage.GetSigner(email1).GetAttachmentRequirement(NAME); byte [] attachmentForSignerFileContent = new StreamDocumentSource(attachmentInputStream).Content(); signerAttachmentFileSize = attachmentForSignerFileContent.Length; OssClient.UploadAttachment(packageId, signerAtt.Id, ATTACHMENT_FILE_NAME, attachmentForSignerFileContent, SIGNER_ID); retrievedPackage = OssClient.GetPackage(packageId); signerAtt = retrievedPackage.GetSigner(email1).GetAttachmentRequirement(NAME); filesAfterUpload = signerAtt.Files; AttachmentFile attachmentFile = filesAfterUpload[0]; // Download signer attachment DownloadedFile downloadedAttachment = ossClient.AttachmentRequirementService.DownloadAttachmentFile(packageId, signerAtt.Id, attachmentFile.Id); System.IO.File.WriteAllBytes(downloadedAttachment.Filename, downloadedAttachment.Contents); OssClient.DeleteAttachmentFile(packageId, signerAtt.Id, attachmentFile.Id, SIGNER_ID); retrievedPackage = OssClient.GetPackage(packageId); signerAtt = retrievedPackage.GetSigner(email1).GetAttachmentRequirement(NAME); filesAfterDelete = signerAtt.Files; downloadedAttachmentFile = new FileInfo(downloadedAttachment.Filename); }
override public void Execute() { // Signer1 with 1 attachment requirement signer1 = SignerBuilder.NewSignerWithEmail(email1) .WithFirstName("John") .WithLastName("Smith") .WithCustomId(SIGNER1_ID) .WithAttachmentRequirement(AttachmentRequirementBuilder.NewAttachmentRequirementWithName(NAME1) .WithDescription(DESCRIPTION1) .IsRequiredAttachment() .Build()).Build(); DocumentPackage superDuperPackage = PackageBuilder.NewPackageNamed(PackageName) .DescribedAs("This is a package created using the eSignLive SDK") .WithSigner(signer1) .WithDocument(DocumentBuilder.NewDocumentNamed("test document") .FromStream(fileStream1, DocumentType.PDF) .WithSignature(SignatureBuilder.SignatureFor(email1) .Build()) .Build()) .Build(); packageId = OssClient.CreateAndSendPackage(superDuperPackage); retrievedPackage = OssClient.GetPackage(packageId); signer1Att1 = retrievedPackage.GetSigner(email1).GetAttachmentRequirement(NAME1); byte [] attachment1ForSigner1FileContent = new StreamDocumentSource(attachmentInputStream1).Content(); OssClient.UploadAttachment(packageId, signer1Att1.Id, ATTACHMENT_FILE_NAME1, attachment1ForSigner1FileContent, SIGNER1_ID); retrievedPackage = OssClient.GetPackage(packageId); signer1Att1 = retrievedPackage.GetSigner(email1).GetAttachmentRequirement(NAME1); filesAfterUpload = signer1Att1.Files; AttachmentFile attachmentFile = filesAfterUpload[0]; OssClient.DeleteAttachmentFile(packageId, signer1Att1.Id, attachmentFile.Id, SIGNER1_ID); retrievedPackage = OssClient.GetPackage(packageId); signer1Att1 = retrievedPackage.GetSigner(email1).GetAttachmentRequirement(NAME1); filesAfterDelete = signer1Att1.Files; }
private void uploadAttachment(PackageId packageId, string attachmentId, string filename, Stream fileStream, string sessionId) { string path = template.UrlFor(UrlTemplate.ATTACHMENT_REQUIREMENT_PATH) .Replace("{packageId}", packageId.Id) .Replace("{attachmentId}", attachmentId) .Build(); byte[] fileBytes = new StreamDocumentSource(fileStream).Content(); string fileName = DocumentTypeUtility.NormalizeName(DocumentType.PDF, filename); string boundary = GenerateBoundary(); byte[] bytes = new byte[fileName.Length * sizeof(char)]; System.Buffer.BlockCopy(fileName.ToCharArray(), 0, bytes, 0, bytes.Length); byte[] content = CreateMultipartContent(fileName, fileBytes, bytes, boundary); try { client.PostMultipartFile(path, content, boundary, sessionId, Converter.ToString(bytes)); } catch (Exception e) { throw new EslException("Could not upload attachment for signer." + " Exception: " + e.Message, e); } }
override public void Execute() { // Signer1 with 1 attachment requirement signer1 = SignerBuilder.NewSignerWithEmail(email1) .WithFirstName("John") .WithLastName("Smith") .WithCustomId(SIGNER1_ID) .WithAttachmentRequirement(AttachmentRequirementBuilder.NewAttachmentRequirementWithName(NAME1) .WithDescription(DESCRIPTION1) .IsRequiredAttachment() .Build()) .Build(); // Signer2 with 2 attachment requirements Signer signer2 = SignerBuilder.NewSignerWithEmail(email2) .WithFirstName("Patty") .WithLastName("Galant") .WithCustomId(SIGNER2_ID) .WithAttachmentRequirement(AttachmentRequirementBuilder.NewAttachmentRequirementWithName(NAME2) .WithDescription(DESCRIPTION2) .Build()) .WithAttachmentRequirement(AttachmentRequirementBuilder.NewAttachmentRequirementWithName(NAME3) .WithDescription(DESCRIPTION3) .IsRequiredAttachment() .Build()) .Build(); DocumentPackage superDuperPackage = PackageBuilder.NewPackageNamed(PackageName) .DescribedAs("This is a package created using the eSignLive SDK") .WithSigner(signer1) .WithSigner(signer2) .WithDocument(DocumentBuilder.NewDocumentNamed("test document") .FromStream(fileStream1, DocumentType.PDF) .WithSignature(SignatureBuilder.SignatureFor(email1) .Build()) .Build()) .Build(); packageId = eslClient.CreateAndSendPackage(superDuperPackage); retrievedPackage = eslClient.GetPackage(packageId); attachment1Id = retrievedPackage.GetSigner(email1).GetAttachmentRequirement(NAME1).Id; signer1 = retrievedPackage.GetSigner(email1); signer1Attachments = retrievedPackage.GetSigner(email1).Attachments; signer2Attachments = retrievedPackage.GetSigner(email2).Attachments; signer1Att1 = signer1Attachments[0]; signer2Att1 = signer2Attachments[0]; signer2Att2 = signer2Attachments[1]; retrievedSigner1Att1RequirementStatus = signer1Att1.Status; retrievedSigner2Att1RequirementStatus = signer2Att1.Status; retrievedSigner2Att2RequirementStatus = signer2Att2.Status; // Upload attachment for signer1 byte[] attachment1ForSigner1FileContent = new StreamDocumentSource(attachmentInputStream1).Content(); attachment1ForSigner1FileSize = attachment1ForSigner1FileContent.Length; eslClient.UploadAttachment(packageId, signer1Att1.Id, ATTACHMENT_FILE_NAME1, attachment1ForSigner1FileContent, SIGNER1_ID); eslClient.UploadAttachment(packageId, signer2Att1.Id, ATTACHMENT_FILE_NAME2, new StreamDocumentSource(attachmentInputStream2).Content(), SIGNER2_ID); eslClient.UploadAttachment(PackageId, signer2Att2.Id, ATTACHMENT_FILE_NAME3, new StreamDocumentSource(attachmentInputStream3).Content(), SIGNER2_ID); // Sender rejects Signer1's uploaded attachment eslClient.AttachmentRequirementService.RejectAttachment(packageId, signer1, NAME1, REJECTION_COMMENT); retrievedPackageAfterRejection = eslClient.GetPackage(packageId); retrievedSigner1Att1RequirementStatusAfterRejection = retrievedPackageAfterRejection.GetSigner(email1).GetAttachmentRequirement(NAME1).Status; retrievedSigner1Att1RequirementSenderCommentAfterRejection = retrievedPackageAfterRejection.GetSigner(email1).GetAttachmentRequirement(NAME1).SenderComment; // Sender accepts Signer1's uploaded attachment eslClient.AttachmentRequirementService.AcceptAttachment(packageId, signer1, NAME1); retrievedPackageAfterAccepting = eslClient.GetPackage(packageId); retrievedSigner1Att1RequirementStatusAfterAccepting = retrievedPackageAfterAccepting.GetSigner(email1).GetAttachmentRequirement(NAME1).Status; retrievedSigner1Att1RequirementSenderCommentAfterAccepting = retrievedPackageAfterAccepting.GetSigner(email1).GetAttachmentRequirement(NAME1).SenderComment; // Download signer1's attachment DownloadedFile downloadedAttachment = eslClient.AttachmentRequirementService.DownloadAttachmentFile(packageId, attachment1Id); System.IO.File.WriteAllBytes(downloadedAttachment.Filename, downloadedAttachment.Contents); // Download all attachments for the package DownloadedFile downloadedAllAttachmentsForPackage = eslClient.AttachmentRequirementService.DownloadAllAttachmentFilesForPackage(packageId); System.IO.File.WriteAllBytes(DOWNLOADED_ALL_ATTACHMENTS_FOR_PACKAGE_ZIP, downloadedAllAttachmentsForPackage.Contents); // Download all attachments for the signer1 in the package DownloadedFile downloadedAllAttachmentsForSigner1InPackage = eslClient.AttachmentRequirementService.DownloadAllAttachmentFilesForSignerInPackage(retrievedPackage, signer1); System.IO.File.WriteAllBytes(DOWNLOADED_ALL_ATTACHMENTS_FOR_SIGNER1_IN_PACKAGE_ZIP, downloadedAllAttachmentsForSigner1InPackage.Contents); // Download all attachments for the signer2 in the package DownloadedFile downloadedAllAttachmentsForSigner2InPackage = eslClient.AttachmentRequirementService.DownloadAllAttachmentFilesForSignerInPackage(retrievedPackage, signer2); System.IO.File.WriteAllBytes(DOWNLOADED_ALL_ATTACHMENTS_FOR_SIGNER2_IN_PACKAGE_ZIP, downloadedAllAttachmentsForSigner2InPackage.Contents); downloadedAttachemnt1 = new FileInfo(downloadedAttachment.Filename); }