示例#1
0
        internal PackageBuilder(Silanis.ESL.API.Package package)
        {
            this.id           = new PackageId(package.Id);
            this.packageName  = package.Name;
            this.autocomplete = package.Autocomplete;
            this.description  = package.Description;
            this.expiryDate   = package.Due;
            this.status       = ConvertPackageStatus(package.Status);
            this.emailMessage = package.EmailMessage;
            this.settings     = new DocumentPackageSettingsBuilder(package.Settings).build();

            foreach (Silanis.ESL.API.Role role in package.Roles)
            {
                if (role.Signers.Count == 0)
                {
                    continue;
                }

                Signer signer = SignerBuilder.NewSignerFromAPISigner(role).Build();

                WithSigner(signer);
            }

            foreach (Silanis.ESL.API.Document apiDocument in package.Documents)
            {
                Document document = DocumentBuilder.NewDocumentFromAPIDocument(apiDocument, package).Build();

                WithDocument(document);
            }
        }
示例#2
0
        internal PackageBuilder(Silanis.ESL.API.Package package)
        {
            this.id           = new PackageId(package.Id);
            this.packageName  = package.Name;
            this.autocomplete = package.Autocomplete;
            this.description  = package.Description;
            this.expiryDate   = package.Due;
            this.status       = ConvertPackageStatus(package.Status);
            this.emailMessage = package.EmailMessage;
            this.settings     = new DocumentPackageSettingsBuilder(package.Settings).build();
            this.senderInfo   = new SenderConverter(package.Sender).ToSDKSenderInfo();
            this.attributes   = new DocumentPackageAttributes(package.Data);

            foreach (Silanis.ESL.API.Role role in package.Roles)
            {
                if (role.Signers.Count == 0)
                {
                    continue;
                }

                if (role.Signers[0].Group != null)
                {
                    WithSigner(SignerBuilder.NewSignerFromGroup(new GroupId(role.Signers[0].Group.Id)));
                }
                else
                {
                    WithSigner(SignerBuilder.NewSignerFromAPISigner(role).Build());
                    if (role.Type == Silanis.ESL.API.RoleType.SENDER)
                    {
                        Silanis.ESL.API.Signer senderSigner = role.Signers[0];
                        WithSenderInfo(SenderInfoBuilder.NewSenderInfo(senderSigner.Email)
                                       .WithName(senderSigner.FirstName, senderSigner.LastName)
                                       .WithCompany(senderSigner.Company)
                                       .WithTitle(senderSigner.Title));
                    }
                }
            }

            foreach (Silanis.ESL.API.Document apiDocument in package.Documents)
            {
                Document document = DocumentBuilder.NewDocumentFromAPIDocument(apiDocument, package).Build();

                WithDocument(document);
            }
        }