Opc.Ua.ContentFilter.ToInt64 C# (CSharp) Method

ToInt64() private static method

Converts a value to a Int64
private static ToInt64 ( object value, BuiltInType sourceType ) : object
value object
sourceType BuiltInType
return object
        private static object ToInt64(object value, BuiltInType sourceType)
        {            
            // check for array conversions.
            Array array = value as Array;

            if (array != null)
            {
                long[] output = new long[array.Length];

                for (int ii = 0; ii < array.Length; ii++)
                {
                    output[ii] = (long)Cast(array.GetValue(ii), BuiltInType.Int64);
                }

                return output;
            }
            
            // handle for supported conversions.
            switch (sourceType)
            {
                case BuiltInType.Int64:
                {
                    return (long)value; 
                }
                    
                case BuiltInType.Boolean: return Convert.ToInt64((bool)value);
                case BuiltInType.SByte:   return Convert.ToInt64((sbyte)value);
                case BuiltInType.Byte:    return Convert.ToInt64((byte)value);
                case BuiltInType.Int16:   return Convert.ToInt64((short)value);
                case BuiltInType.UInt16:  return Convert.ToInt64((ushort)value);
                case BuiltInType.Int32:   return Convert.ToInt64((int)value);
                case BuiltInType.UInt32:  return Convert.ToInt64((uint)value);
                case BuiltInType.UInt64:  return Convert.ToInt64((ulong)value);
                case BuiltInType.Float:   return Convert.ToInt64((float)value);
                case BuiltInType.Double:  return Convert.ToInt64((double)value);

                case BuiltInType.String:
                {
                    return XmlConvert.ToInt64((string)value); 
                }

                case BuiltInType.StatusCode:
                {
                    return Convert.ToInt64(((StatusCode)value).Code); 
                }
            }
            
            // conversion not supported.
            return DBNull.Value;
        }