public void ConvertAPIToAPI()
 {
     apiField1 = CreateTypicalAPIConditionalField();
     converter = new ConditionalFieldConverter(apiField1);
     apiField2 = converter.ToAPIConditionalField();
     Assert.IsNotNull(apiField2);
     Assert.AreEqual(apiField2, apiField1);
 }
        public OneSpanSign.API.ConditionalField ToAPIConditionalField()
        {
            if (sdkField == null)
            {
                return(apiField);
            }

            OneSpanSign.API.ConditionalField result = new OneSpanSign.API.ConditionalField();

            result.Name    = sdkField.Name;
            result.Extract = sdkField.Extract;
            result.Page    = sdkField.Page;
            result.Id      = sdkField.Id;

            if (!sdkField.Extract)
            {
                result.Left   = sdkField.X;
                result.Top    = sdkField.Y;
                result.Width  = sdkField.Width;
                result.Height = sdkField.Height;
            }

            if (sdkField.TextAnchor != null)
            {
                result.ExtractAnchor = new TextAnchorConverter(sdkField.TextAnchor).ToAPIExtractAnchor();
            }

            result.Value = sdkField.Value;

            if (sdkField.Style == FieldStyle.BOUND_QRCODE)
            {
                result.Type = new FieldTypeConverter(FieldType.IMAGE).ToAPIFieldType();
            }
            else
            {
                result.Type = new FieldTypeConverter(FieldType.INPUT).ToAPIFieldType();
            }

            result.Subtype = new FieldStyleAndSubTypeConverter(sdkField.Style).ToAPIFieldSubtype();
            result.Binding = sdkField.Binding;

            if (sdkField.Validator != null)
            {
                result.Validation = new FieldValidatorConverter(sdkField.Validator).ToAPIFieldValidation();
            }
            if (sdkField.Conditions != null)
            {
                foreach (var condition in sdkField.Conditions)
                {
                    result.AddCondition(new FieldConditionConverter(condition).ToAPIFieldCondition());
                }
            }

            return(result);
        }
        public void ConvertSDKToAPI()
        {
            sdkField1 = CreateTypicalSDKConditionalField();
            apiField1 = new ConditionalFieldConverter(sdkField1).ToAPIConditionalField();

            Assert.IsNotNull(apiField1);
            Assert.AreEqual(sdkField1.Value, apiField1.Value);
            Assert.AreEqual(sdkField1.X, apiField1.Left);
            Assert.AreEqual(sdkField1.Y, apiField1.Top);
            Assert.AreEqual(sdkField1.Width, apiField1.Width);
            Assert.AreEqual(sdkField1.Height, apiField1.Height);
            Assert.AreEqual(sdkField1.Id, apiField1.Id);
            Assert.AreEqual(sdkField1.Name, apiField1.Name);
            Assert.AreEqual(sdkField1.Page, apiField1.Page);
            Assert.AreEqual(sdkField1.Conditions.Count, apiField1.Conditions.Count);
        }
        public void ConvertAPIToSDK()
        {
            apiField1 = CreateTypicalAPIConditionalField();
            sdkField1 = new ConditionalFieldConverter(apiField1).ToSDKConditionalField();

            Assert.IsNotNull(sdkField1);
            Assert.AreEqual(sdkField1.Validator, new FieldValidatorConverter(apiField1.Validation).ToSDKFieldValidator());
            Assert.AreEqual(sdkField1.Id, apiField1.Id);
            Assert.AreEqual(sdkField1.Name, apiField1.Name);
            Assert.AreEqual(sdkField1.Page, apiField1.Page);
            Assert.AreEqual(sdkField1.Style, new FieldStyleAndSubTypeConverter(apiField1.Subtype, apiField1.Binding).ToSDKFieldStyle());
            Assert.AreEqual(sdkField1.TextAnchor, new TextAnchorConverter(apiField1.ExtractAnchor).ToSDKTextAnchor());
            Assert.AreEqual(sdkField1.Value, apiField1.Value);
            Assert.AreEqual(sdkField1.X, apiField1.Left);
            Assert.AreEqual(sdkField1.Y, apiField1.Top);
            Assert.AreEqual(sdkField1.Width, apiField1.Width);
            Assert.AreEqual(sdkField1.Height, apiField1.Height);
            Assert.AreEqual(sdkField1.Conditions.Count, apiField1.Conditions.Count);
        }
        private OneSpanSign.API.ConditionalField CreateTypicalAPIConditionalField()
        {
            OneSpanSign.API.ConditionalField apiField = new OneSpanSign.API.ConditionalField();

            apiField.Extract = false;
            apiField.Height  = 100.0;
            apiField.Left    = 10.0;
            apiField.Id      = "3";
            apiField.Name    = "Field Name";
            apiField.Page    = 1;
            apiField.Subtype = FieldStyle.UNBOUND_TEXT_FIELD.getApiValue();
            apiField.Top     = 101.0;
            apiField.Type    = "INPUT";
            apiField.Value   = "field value";
            apiField.Width   = 102.0;

            OneSpanSign.API.FieldCondition condition = new OneSpanSign.API.FieldCondition();
            condition.Id        = "ConditionId";
            condition.Condition = "document['DocumentId'].field['fieldId2'].value == 'X'";
            condition.Action    = "document['DocumentId'].field['fieldId1'].disabled = true";
            apiField.AddCondition(condition);

            return(apiField);
        }
 public void ConvertNullAPIToAPI()
 {
     apiField1 = null;
     converter = new ConditionalFieldConverter(apiField1);
     Assert.IsNull(converter.ToAPIConditionalField());
 }
 public ConditionalFieldConverter(OneSpanSign.API.ConditionalField apiField)
 {
     this.apiField = apiField;
 }