private void CheckOrderCustomFields()
        {
            var order = new Order();

            if (FilterBy_doCapturePaymentFlag && !order.OrderFields.Any(of => of.SystemName == "DoCapturePayment"))
            {
                var doCapturePayment = new OrderField
                {
                    SystemName = "DoCapturePayment",
                    Locked     = true,
                    Name       = "Make Capture Payment",
                    TypeId     = 3,
                    TypeName   = "checkbox"
                };

                doCapturePayment.Save("Order_DoCapturePayment");
                order.OrderFields.Add(doCapturePayment);
            }

            if (!order.OrderFields.Any(of => of.SystemName == "PaymentCaptured"))
            {
                var paymentCaptured = new OrderField
                {
                    SystemName = "PaymentCaptured",
                    Locked     = true,
                    Name       = "Payment is done",
                    TypeId     = 3,
                    TypeName   = "checkbox"
                };

                paymentCaptured.Save("Order_PaymentCaptured");
                order.OrderFields.Add(paymentCaptured);
            }
        }
        public void Save()
        {
            var fields = new OrderFieldProperties[1];

            fields[0] = new OrderFieldProperties()
            {
                Name                     = Name,
                Label                    = Label,
                Type                     = Type,
                Required                 = Required,
                DefaultValue             = DefaultValue,
                ExplicitOptionAssignment = ExplicitOptionsAssignment,
                Lines                    = Lines,
                Width                    = Width,
                MaxLength                = MaxLength,
                Options                  = Options.Select(o => o.ToOption()).ToArray()
            };
            var error = _field.Save(fields, this.SharedSecret);

            if (error.Length > 0)
            {
                throw new Exception(error[0].InteropID + " failed: " + error[0].ErrorMessage);
            }
        }