public static bool LoadFromFile(string fileName, out LimitPair obj)
 {
     System.Exception exception;
     return LoadFromFile(fileName, out obj, out exception);
 }
 /// <summary>
 /// Deserializes xml markup from file into an LimitPair object
 /// </summary>
 /// <param name="fileName">string xml file to load and deserialize</param>
 /// <param name="obj">Output LimitPair object</param>
 /// <param name="exception">output Exception value if deserialize failed</param>
 /// <returns>true if this Serializer can deserialize the object; otherwise, false</returns>
 public static bool LoadFromFile(string fileName, out LimitPair obj, out System.Exception exception)
 {
     exception = null;
     obj = default(LimitPair);
     try
     {
         obj = LoadFromFile(fileName);
         return true;
     }
     catch (System.Exception ex)
     {
         exception = ex;
         return false;
     }
 }
 public static bool Deserialize(string input, out LimitPair obj)
 {
     System.Exception exception;
     return Deserialize(input, out obj, out exception);
 }
 /// <summary>
 /// Deserializes workflow markup into an LimitPair object
 /// </summary>
 /// <param name="input">string workflow markup to deserialize</param>
 /// <param name="obj">Output LimitPair object</param>
 /// <param name="exception">output Exception value if deserialize failed</param>
 /// <returns>true if this Serializer can deserialize the object; otherwise, false</returns>
 public static bool Deserialize(string input, out LimitPair obj, out System.Exception exception)
 {
     exception = null;
     obj = default(LimitPair);
     try
     {
         obj = Deserialize(input);
         return true;
     }
     catch (System.Exception ex)
     {
         exception = ex;
         return false;
     }
 }
        private void InitLimitPair()
        {
            if (_limitPair == null)
                _limitPair = new LimitPair();

            if (_limitPair.Limit == null)
                _limitPair.Limit = new List<SingleLimit>();

            if (_limitPair.Limit.Count < 1)
                _limitPair.Limit.Add(new SingleLimit());
            if (_limitPair.Limit.Count < 2)
                _limitPair.Limit.Add(new SingleLimit());
        }
        private void btnSubmit_Click(object sender, EventArgs e)
        {
            string input1 = edtQuickEntry.Text;
            string input2 = null;
            int idx = input1.IndexOf(" to ", System.StringComparison.Ordinal);
            if (idx != -1)
            {
                input2 = input1.Substring(idx + " to ".Length );
                input1 = input1.Substring(0, idx);
            }

            bool useLimitPair = false;
            List<Value> values1 = ElectricalUtils.ParseExpression(input1);
            List<Value> values2 = null;
            if (input2 != null)
            {
                values2 = ElectricalUtils.ParseExpression(input2);
                useLimitPair = true;
            }

            if (values1.Count > 0)
            {
                Value value1 = values1[0];
                ErrorLimit errorLimit1 = value1.errorLimit;
                Value resolution1 = value1.resoluion;
                string unit1 = value1.unit;
                string val1 = value1.value;
                @double datum1 = value1.@double;
                _limit = new Limit();
                if (!useLimitPair)
                {
                    cmbLimitType.SelectedIndex = LIMIT_EXPECTED;
                    var le = new LimitExpected { Item = datum1 };
                    _limit.Item = le;
                    //20msV errlmt 0.01% res 1mV range 50mV to 10V  range 100mV to 20V
                }
                else
                {
                    cmbLimitType.SelectedIndex = LIMIT_PAIR;
                    SingleLimit limit1 = new SingleLimit();
                    SingleLimit limit2 = new SingleLimit();
                    limit1.comparator = ComparisonOperator.GE;
                    limit2.comparator = ComparisonOperator.LE;
                    var lp = new LimitPair {Limit = new List<SingleLimit> {limit1, limit2}};
                    limit1.Item = datum1;
                    if ( values2.Count > 0)
                    {
                        Value value2 = values2[0];
                        ErrorLimit errorLimit2 = value2.errorLimit;
                        Value resolution2 = value2.resoluion;
                        string unit2 = value2.unit;
                        string val2 = value2.value;
                        @double datum2 = value2.@double;
                        limit2.Item = datum2;
                        //20mV errlmt 0.01% res 1mV range 50mV to 10V  range 100mV to 20V
                    }
                    _limit.Item = lp;
                }
                DataToControls();
            }
        }