public void ConvertAPIToSDK()
        {
            apiRole    = CreateTypicalAPIRole();
            apiSigner1 = apiRole.Signers[0];

            sdkSigner1 = new SignerConverter(apiRole).ToSDKSigner();

            Assert.IsNotNull(sdkSigner1);
            Assert.AreEqual(apiSigner1.Email, sdkSigner1.Email);
            Assert.AreEqual(apiSigner1.FirstName, sdkSigner1.FirstName);
            Assert.AreEqual(apiSigner1.LastName, sdkSigner1.LastName);
            Assert.AreEqual(apiSigner1.Company, sdkSigner1.Company);
            Assert.AreEqual(apiSigner1.SignerType, sdkSigner1.SignerType);
            Assert.AreEqual(apiSigner1.Title, sdkSigner1.Title);
            Assert.AreEqual(apiSigner1.Language, sdkSigner1.Language);
            Assert.AreEqual(apiRole.Id, sdkSigner1.Id);
            Assert.AreEqual(apiRole.Index, sdkSigner1.SigningOrder);
            Assert.AreEqual(apiRole.Reassign, sdkSigner1.CanChangeSigner);
            Assert.AreEqual(apiRole.EmailMessage.Content, sdkSigner1.Message);
            Assert.AreEqual(apiSigner1.Delivery.Email, sdkSigner1.DeliverSignedDocumentsByEmail);

            string attachmentName = apiRole.AttachmentRequirements[0].Name;

            OneSpanSign.API.AttachmentRequirement apiAttachment = apiRole.AttachmentRequirements[0];
            OneSpanSign.Sdk.AttachmentRequirement sdkAttachment = sdkSigner1.GetAttachmentRequirement(attachmentName);
            Assert.AreEqual(attachmentName, sdkSigner1.GetAttachmentRequirement(attachmentName).Name);
            Assert.AreEqual(apiAttachment.Description, sdkAttachment.Description);
            Assert.AreEqual(apiAttachment.Required, sdkAttachment.Required);
            Assert.AreEqual(apiAttachment.Status.ToString(), sdkAttachment.Status.ToString());
            Assert.AreEqual(apiAttachment.Comment, sdkAttachment.SenderComment);
        }
        public void ConvertAPIToAPI()
        {
            apiRole    = CreateTypicalAPIRole();
            apiSigner1 = new SignerConverter(apiRole).ToAPISigner();

            Assert.IsNotNull(apiSigner1);
            Assert.AreEqual(apiSigner1, apiRole.Signers[0]);
        }
示例#3
0
        public SignerConverter(OneSpanSign.API.Role apiRole)
        {
            this.apiRole = apiRole;

            if (apiRole != null)
            {
                this.apiSigner = apiRole.Signers[0];
            }
        }
        public void ConvertSDKToAPI()
        {
            sdkSigner1 = CreateTypicalSDKSigner();
            apiSigner1 = new SignerConverter(sdkSigner1).ToAPISigner();

            Assert.IsNotNull(apiSigner1);
            Assert.AreEqual(apiSigner1.Email, sdkSigner1.Email);
            Assert.AreEqual(apiSigner1.FirstName, sdkSigner1.FirstName);
            Assert.AreEqual(apiSigner1.LastName, sdkSigner1.LastName);
            Assert.AreEqual(apiSigner1.Company, sdkSigner1.Company);
            Assert.AreEqual(apiSigner1.Language, sdkSigner1.Language);
            Assert.AreEqual(apiSigner1.Title, sdkSigner1.Title);
        }
示例#5
0
        internal OneSpanSign.API.Signer ToAPISigner()
        {
            if (sdkSigner == null)
            {
                return(apiSigner);
            }

            if (sdkSigner.IsPlaceholderSigner())
            {
                return(null);
            }

            OneSpanSign.API.Signer signer = new OneSpanSign.API.Signer();

            if (!sdkSigner.IsGroupSigner())
            {
                signer.Email     = sdkSigner.Email;
                signer.FirstName = sdkSigner.FirstName;
                signer.LastName  = sdkSigner.LastName;
                signer.Title     = sdkSigner.Title;
                signer.Company   = sdkSigner.Company;
                if (sdkSigner.DeliverSignedDocumentsByEmail)
                {
                    signer.Delivery       = new OneSpanSign.API.Delivery();
                    signer.Delivery.Email = sdkSigner.DeliverSignedDocumentsByEmail;
                }
                signer.KnowledgeBasedAuthentication = new KnowledgeBasedAuthenticationConverter(sdkSigner.KnowledgeBasedAuthentication).ToAPIKnowledgeBasedAuthentication();
            }
            else
            {
                signer.Group    = new OneSpanSign.API.Group();
                signer.Group.Id = sdkSigner.GroupId.Id;
            }

            if (!String.IsNullOrEmpty(sdkSigner.Language))
            {
                signer.Language = sdkSigner.Language;
            }

            if (!String.IsNullOrEmpty(sdkSigner.Id))
            {
                signer.Id = sdkSigner.Id;
            }

            signer.Auth = new AuthenticationConverter(sdkSigner.Authentication).ToAPIAuthentication();

            return(signer);
        }
        private OneSpanSign.API.Role CreateTypicalAPIRole()
        {
            OneSpanSign.API.Role apiRole = new OneSpanSign.API.Role();

            OneSpanSign.API.Signer apiSigner = new OneSpanSign.API.Signer();
            apiSigner.Email      = "*****@*****.**";
            apiSigner.FirstName  = "Signer first name";
            apiSigner.LastName   = "Signer last name";
            apiSigner.Company    = "ABC Inc.";
            apiSigner.SignerType = "THIRD_PARTY_SIGNER";
            apiSigner.Language   = "fr";
            apiSigner.Title      = "Doctor";

            OneSpanSign.API.Delivery delivery = new OneSpanSign.API.Delivery();
            delivery.Download = true;
            delivery.Email    = true;

            apiSigner.Delivery = delivery;
            apiSigner.Id       = "1";

            apiRole.AddSigner(apiSigner);
            apiRole.Id       = "3";
            apiRole.Name     = "Signer name";
            apiRole.Index    = 0;
            apiRole.Reassign = true;
            OneSpanSign.API.BaseMessage baseMessage = new OneSpanSign.API.BaseMessage();
            baseMessage.Content  = "Base message content.";
            apiRole.EmailMessage = baseMessage;
            apiRole.Locked       = true;

            OneSpanSign.API.AttachmentRequirement attachmentRequirement = new OneSpanSign.API.AttachmentRequirement();
            attachmentRequirement.Name        = "Driver's license";
            attachmentRequirement.Description = "Please upload your scanned driver's license.";
            attachmentRequirement.Status      = OneSpanSign.Sdk.RequirementStatus.INCOMPLETE.getApiValue();
            attachmentRequirement.Required    = true;
            attachmentRequirement.Comment     = "Attachment was not uploaded";
            apiRole.AddAttachmentRequirement(attachmentRequirement);

            return(apiRole);
        }
示例#7
0
        private OneSpanSign.Sdk.Signer NewRegularSignerFromAPIRole()
        {
            OneSpanSign.API.Signer eslSigner = apiRole.Signers[0];

            SignerBuilder builder = SignerBuilder.NewSignerWithEmail(eslSigner.Email)
                                    .WithCustomId(eslSigner.Id)
                                    .WithFirstName(eslSigner.FirstName)
                                    .WithLastName(eslSigner.LastName)
                                    .WithCompany(eslSigner.Company)
                                    .WithLanguage(eslSigner.Language)
                                    .WithTitle(eslSigner.Title)
                                    .ChallengedWithKnowledgeBasedAuthentication(new KnowledgeBasedAuthenticationConverter(eslSigner.KnowledgeBasedAuthentication).ToSDKKnowledgeBasedAuthentication());

            if (apiRole.Index.HasValue)
            {
                builder.SigningOrder(apiRole.Index.Value);
            }

            foreach (OneSpanSign.API.AttachmentRequirement attachmentRequirement in apiRole.AttachmentRequirements)
            {
                builder.WithAttachmentRequirement(new AttachmentRequirementConverter(attachmentRequirement).ToSDKAttachmentRequirement());
            }

            if (apiRole.Id != null)
            {
                builder.WithCustomId(apiRole.Id);
            }

            if (apiRole.Reassign.Value)
            {
                builder.CanChangeSigner();
            }

            if (apiRole.EmailMessage != null)
            {
                builder.WithEmailMessage(apiRole.EmailMessage.Content);
            }

            if (eslSigner.Delivery != null && eslSigner.Delivery.Email.Value)
            {
                builder.DeliverSignedDocumentsByEmail();
            }

            builder.WithAuthentication(new AuthenticationConverter(eslSigner.Auth).ToSDKAuthentication());

            Signer signer = builder.Build();

            if (apiSigner.SignerType != null)
            {
                signer.SignerType = apiSigner.SignerType;
            }

            if (apiRole.Locked.Value)
            {
                signer.Locked = true;
            }

            IDictionary <string, object> apiRoleData = apiRole.Data;

            if (apiRoleData != null && apiRoleData.ContainsKey("localLanguage"))
            {
                object localLanguage = apiRoleData["localLanguage"];
                if (localLanguage != null)
                {
                    signer.LocalLanguage = localLanguage.ToString();
                }
            }

            return(signer);
        }
示例#8
0
        internal OneSpanSign.Sdk.DocumentPackage ToSDKPackage()
        {
            if (apiPackage == null)
            {
                return(sdkPackage);
            }

            PackageBuilder packageBuilder = PackageBuilder.NewPackageNamed(apiPackage.Name);

            packageBuilder.WithID(new PackageId(apiPackage.Id));

            if (apiPackage.Autocomplete.Value)
            {
                packageBuilder.WithAutomaticCompletion();
            }
            else
            {
                packageBuilder.WithoutAutomaticCompletion();
            }

            packageBuilder.ExpiresOn(apiPackage.Due);
            packageBuilder.WithStatus(new PackageStatusConverter(apiPackage.Status).ToSDKPackageStatus());


            if (apiPackage.Description != null)
            {
                packageBuilder.DescribedAs(apiPackage.Description);
            }

            if (apiPackage.EmailMessage != null)
            {
                packageBuilder.WithEmailMessage(apiPackage.EmailMessage);
            }

            if (apiPackage.Language != null)
            {
                packageBuilder.WithLanguage(new CultureInfo(apiPackage.Language));
            }

            if (apiPackage.Settings != null)
            {
                packageBuilder.WithSettings(new DocumentPackageSettingsConverter(apiPackage.Settings).toSDKDocumentPackageSettings());
            }

            if (apiPackage.Sender != null)
            {
                packageBuilder.WithSenderInfo(new SenderConverter(apiPackage.Sender).ToSDKSenderInfo());
            }

            if (apiPackage.Notarized != null)
            {
                packageBuilder.WithNotarized(apiPackage.Notarized);
            }

            if (apiPackage.Trashed != null)
            {
                packageBuilder.WithTrashed(apiPackage.Trashed.Value);
            }

            if (apiPackage.Visibility != null)
            {
                packageBuilder.WithVisibility(new VisibilityConverter(apiPackage.Visibility).ToSDKVisibility());
            }

            if (apiPackage.TimezoneId != null)
            {
                packageBuilder.WithTimezoneId(apiPackage.TimezoneId);
            }

            packageBuilder.WithAttributes(new DocumentPackageAttributesBuilder(apiPackage.Data).Build());

            foreach (OneSpanSign.API.Role role in apiPackage.Roles)
            {
                if (role.Signers.Count == 0)
                {
                    packageBuilder.WithSigner(SignerBuilder.NewSignerPlaceholder(new Placeholder(role.Id, role.Name, role.Index)));
                }
                else if (role.Signers[0].Group != null)
                {
                    packageBuilder.WithSigner(SignerBuilder.NewSignerFromGroup(new GroupId(role.Signers[0].Group.Id)));
                }
                else
                {
                    packageBuilder.WithSigner(new SignerConverter(role).ToSDKSigner());

                    // The custom sender information is stored in the role.signer object.
                    if ("SENDER".Equals(role.Type))
                    {
                        // Override sender info with the customized ones.
                        OneSpanSign.Sdk.SenderInfo senderInfo = new OneSpanSign.Sdk.SenderInfo();

                        OneSpanSign.API.Signer signer = role.Signers[0];
                        senderInfo.FirstName = signer.FirstName;
                        senderInfo.LastName  = signer.LastName;
                        senderInfo.Title     = signer.Title;
                        senderInfo.Company   = signer.Company;
                        senderInfo.Email     = signer.Email;

                        packageBuilder.WithSenderInfo(senderInfo);
                    }
                }
            }

            foreach (OneSpanSign.API.Document apiDocument in apiPackage.Documents)
            {
                Document document = new DocumentConverter(apiDocument, apiPackage).ToSDKDocument();
                packageBuilder.WithDocument(document);
            }

            DocumentPackage documentPackage = packageBuilder.Build();

            IList <Message> messages = new List <Message>();

            foreach (OneSpanSign.API.Message apiMessage in apiPackage.Messages)
            {
                messages.Add(new MessageConverter(apiMessage).ToSDKMessage());
            }
            documentPackage.Messages = messages;
            if (apiPackage.Updated != null)
            {
                documentPackage.UpdatedDate = apiPackage.Updated;
            }

            if (apiPackage.Created != null)
            {
                documentPackage.CreatedDate = apiPackage.Created;
            }

            IList <FieldCondition> conditions = new List <FieldCondition>();

            foreach (OneSpanSign.API.FieldCondition apiFieldCondition in apiPackage.Conditions)
            {
                conditions.Add(new FieldConditionConverter(apiFieldCondition).ToSDKFieldCondition());
            }
            documentPackage.Conditions = conditions;

            return(documentPackage);
        }