public OneSpanSign.API.Role ToAPIRole(string roleIdName)
        {
            OneSpanSign.API.Role role = new OneSpanSign.API.Role();

            if (!sdkSigner.IsPlaceholderSigner())
            {
                role.AddSigner(new SignerConverter(sdkSigner).ToAPISigner());
            }
            role.Index    = sdkSigner.SigningOrder;
            role.Reassign = sdkSigner.CanChangeSigner;
            role.Locked   = sdkSigner.Locked;

            foreach (AttachmentRequirement attachmentRequirement in sdkSigner.Attachments)
            {
                role.AddAttachmentRequirement(new AttachmentRequirementConverter(attachmentRequirement).ToAPIAttachmentRequirement());
            }

            if (!String.IsNullOrEmpty(sdkSigner.Id))
            {
                role.Id   = sdkSigner.Id;
                role.Name = sdkSigner.Id;
            }
            else if (sdkSigner.IsGroupSigner())
            {
                role.Id = role.Name = sdkSigner.GroupId.Id;
            }
            else
            {
                role.Id = role.Name = roleIdName;
            }

            if (!String.IsNullOrEmpty(sdkSigner.Message))
            {
                OneSpanSign.API.BaseMessage message = new OneSpanSign.API.BaseMessage();

                message.Content   = sdkSigner.Message;
                role.EmailMessage = message;
            }

            if (!String.IsNullOrEmpty(sdkSigner.LocalLanguage))
            {
                role.AddData("localLanguage", sdkSigner.LocalLanguage);
            }

            return(role);
        }