Esempio n. 1
0
        bool GetField <T>(string fieldName, out T value, T defaultValue)
        {
            var obj = GetField(fieldName);

            if (obj != null)
            {
                try {
                    //if (typeof(T) == typeof(Currency)) {
                    //	value = Currency.ToCurrency(obj);
                    //}

                    ////FIXME
                    //if (obj.GetType() == typeof(DateTime))
                    //	obj = ((DateTime)obj).ToLocalTime();

                    if (typeof(T) == typeof(DateOnly))
                    {
                        obj = DateOnly.ToDateOnly(obj);
                    }

                    if (obj is T _value)
                    {
                        value = _value;
                    }
                    else
                    {
                        obj   = Convert.ChangeType(obj, typeof(T));
                        value = (T)obj;
                    }
                    return(true);
                }
                catch (Exception exc) {
                    //Debug.ExceptionCaught(exc);
                    Debug.Print("Exception caught in AirRecord.GetField(): fieldName={0}, obj={1}:  {2}", fieldName, obj, exc);
                }
            }
            value = defaultValue;
            return(false);
        }