using System; using System.CodeDom.Compiler; using System.Collections.Generic; using System.Linq; using System.Text; namespace ArchestrAServices.Contract; public class VariantReader { public Variant Value { get; set; } public VariantReader(Variant value) { Value = value; } public DataType GetVariantType() { return EnumFactory.IntToDataType(Value.Type); } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsByte() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = Value.Payload[0]; return obj; } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (byte)Convert.ChangeType(obj, typeof(byte)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsInt16() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = BitConverter.ToInt16(Value.Payload, 0); return obj; } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (short)Convert.ChangeType(obj, typeof(short)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsUInt16() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = BitConverter.ToUInt16(Value.Payload, 0); return obj; } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (ushort)Convert.ChangeType(obj, typeof(ushort)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsInt32() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = BitConverter.ToInt32(Value.Payload, 0); return obj; } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (int)Convert.ChangeType(obj, typeof(int)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsUInt32() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = BitConverter.ToUInt32(Value.Payload, 0); return obj; } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (uint)Convert.ChangeType(obj, typeof(uint)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsInt64() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = BitConverter.ToInt64(Value.Payload, 0); return obj; } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (long)Convert.ChangeType(obj, typeof(long)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsUInt64() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = BitConverter.ToUInt64(Value.Payload, 0); return obj; } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (ulong)Convert.ChangeType(obj, typeof(ulong)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsFloat() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = BitConverter.ToSingle(Value.Payload, 0); return obj; } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (float)Convert.ChangeType(obj, typeof(float)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsDouble() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = BitConverter.ToDouble(Value.Payload, 0); return obj; } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (double)Convert.ChangeType(obj, typeof(double)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsString() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = Encoding.Unicode.GetString(Value.Payload); return obj; } if (obj != null) { result = (string)Convert.ChangeType(obj, typeof(string)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } public object GetAsBool() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = Convert.ToBoolean(Value.Payload[0]); return obj; } break; case DataType.TypeByte: if (Value.Payload.Count() == 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (bool)Convert.ChangeType(obj, typeof(bool)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } public object GetAsSByte() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = (sbyte)Value.Payload[0]; return obj; } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (sbyte)Convert.ChangeType(obj, typeof(sbyte)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } public object GetAsDateTime() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = DateTime.FromFileTimeUtc(BitConverter.ToInt64(Value.Payload, 0)); return obj; } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (DateTime)Convert.ChangeType(obj, typeof(DateTime)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } public object GetAsDuration() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = TimeSpan.FromTicks(BitConverter.ToInt64(Value.Payload, 0)); return obj; } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (TimeSpan)Convert.ChangeType(obj, typeof(TimeSpan)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } public object GetAsGuid() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() >= 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: { string g = (string)GetAsString(); obj = new Guid(g); return obj; } case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = ((!(obj.GetType() == typeof(string))) ? ((object)(Guid)Convert.ChangeType(obj, typeof(Guid))) : ((object)new Guid((string)obj))); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } public byte[] GetAsByteString() { return Value.Payload; } public string GetAsLocalizedText() { return (string)GetAsString(); } public object GetScalarValue(DataType targetType) { object obj = null; try { switch (EnumFactory.IntToDataType(Value.Type)) { case DataType.TypeBool: obj = GetAsBool(); if (DataType.TypeBool == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeByte: obj = GetAsByte(); if (targetType == DataType.TypeByte) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeDateTime: obj = GetAsDateTime(); if (targetType == DataType.TypeByte) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeDouble: obj = GetAsDouble(); if (DataType.TypeDouble == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeDuration: obj = GetAsDuration(); if (DataType.TypeDuration == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeFloat: obj = GetAsFloat(); if (DataType.TypeFloat == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeGuid: obj = GetAsGuid(); if (DataType.TypeGuid == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeInt16: obj = GetAsInt16(); if (DataType.TypeInt16 == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeInt32: obj = GetAsInt32(); if (DataType.TypeInt32 == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeInt64: obj = GetAsInt64(); if (DataType.TypeInt64 == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeLocalizedText: obj = GetAsLocalizedText(); if (DataType.TypeLocalizedText == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeSByte: obj = GetAsSByte(); if (DataType.TypeSByte == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeString: obj = GetAsString(); if (DataType.TypeString == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeUInt16: obj = GetAsUInt16(); if (DataType.TypeUInt16 == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeUInt32: obj = GetAsUInt32(); if (DataType.TypeUInt32 == targetType) { return obj; } return GetValueInTargetType(targetType, obj); case DataType.TypeUInt64: obj = GetAsUInt64(); if (DataType.TypeUInt64 == targetType) { return obj; } return GetValueInTargetType(targetType, obj); default: return GetAsString(); } } catch (Exception) { return obj; } } public object GetValueInTargetArrayType(DataType targetType) { switch (targetType) { case DataType.TypeBool: { bool[] array14 = (bool[])GetAsBoolArray(); if (array14 != null && array14.Length != 0) { return array14; } return Value; } case DataType.TypeByte: { byte[] array8 = (byte[])GetAsByteArray(); if (array8 != null && array8.Length != 0) { return array8; } return Value; } case DataType.TypeDateTime: { DateTime[] array15 = (DateTime[])GetAsDateTimeArray(); if (array15 != null && array15.Length != 0) { return array15; } return Value; } case DataType.TypeDouble: { double[] array11 = (double[])GetAsDoubleArray(); if (array11 != null && array11.Length != 0) { return array11; } return Value; } case DataType.TypeDuration: { TimeSpan[] array6 = (TimeSpan[])GetAsDurationArray(); if (array6 != null && array6.Length != 0) { return array6; } return Value; } case DataType.TypeFloat: { float[] array12 = (float[])GetAsFloatArray(); if (array12 != null && array12.Length != 0) { return array12; } return Value; } case DataType.TypeGuid: { Guid[] array10 = (Guid[])GetAsGuidArray(); if (array10 != null && array10.Length != 0) { return array10; } return Value; } case DataType.TypeInt16: { short[] array3 = (short[])GetAsInt16Array(); if (array3 != null && array3.Length != 0) { return array3; } return Value; } case DataType.TypeInt32: { int[] array4 = (int[])GetAsInt32Array(); if (array4 != null && array4.Length != 0) { return array4; } return Value; } case DataType.TypeInt64: { long[] array7 = (long[])GetAsInt64Array(); if (array7 != null && array7.Length != 0) { return array7; } return Value; } case DataType.TypeSByte: { sbyte[] array2 = (sbyte[])GetAsSByteArray(); if (array2 != null && array2.Length != 0) { return array2; } return Value; } case DataType.TypeUInt16: { ushort[] array13 = (ushort[])GetAsUInt16Array(); if (array13 != null && array13.Length != 0) { return array13; } return Value; } case DataType.TypeUInt32: { uint[] array9 = (uint[])GetAsUInt32Array(); if (array9 != null && array9.Length != 0) { return array9; } return Value; } case DataType.TypeUInt64: { ulong[] array5 = (ulong[])GetAsUInt64Array(); if (array5 != null && array5.Length != 0) { return array5; } return Value; } case DataType.TypeUnknown: return Value; default: { string[] array = (string[])GetAsStringArray(); if (array != null && array.Length != 0) { return array; } return Value; } } } private static object GetValueInTargetType(DataType targetType, object retValue) { return targetType switch { DataType.TypeBool => Convert.ChangeType(retValue, typeof(bool)), DataType.TypeByte => Convert.ChangeType(retValue, typeof(byte)), DataType.TypeDateTime => Convert.ChangeType(retValue, typeof(DateTime)), DataType.TypeDouble => Convert.ChangeType(retValue, typeof(double)), DataType.TypeDuration => Convert.ChangeType(retValue, typeof(long)), DataType.TypeFloat => Convert.ChangeType(retValue, typeof(float)), DataType.TypeGuid => Convert.ChangeType(retValue, typeof(Guid)), DataType.TypeInt16 => Convert.ChangeType(retValue, typeof(short)), DataType.TypeInt32 => Convert.ChangeType(retValue, typeof(int)), DataType.TypeInt64 => Convert.ChangeType(retValue, typeof(long)), DataType.TypeSByte => Convert.ChangeType(retValue, typeof(sbyte)), DataType.TypeUInt16 => Convert.ChangeType(retValue, typeof(ushort)), DataType.TypeUInt32 => Convert.ChangeType(retValue, typeof(uint)), DataType.TypeUInt64 => Convert.ChangeType(retValue, typeof(ulong)), _ => Convert.ChangeType(retValue, typeof(string)), }; } public object GetArrayValue(DataType targetType) { object obj = new object(); try { return GetValueInTargetArrayType(targetType); } catch (Exception) { return null; } } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsEnum() { object obj = null; object result = null; try { switch (GetVariantType()) { case DataType.TypeBool: if (Value.Payload.Count() == 1) { obj = GetAsBool(); } break; case DataType.TypeByte: if (Value.Payload.Count() == 1) { obj = GetAsByte(); } break; case DataType.TypeSByte: if (Value.Payload.Count() >= 1) { obj = GetAsSByte(); } break; case DataType.TypeInt16: if (Value.Payload.Count() == 2) { obj = GetAsInt16(); } break; case DataType.TypeUInt16: if (Value.Payload.Count() == 2) { obj = GetAsUInt16(); } break; case DataType.TypeInt32: if (Value.Payload.Count() == 4) { obj = GetAsInt32(); } break; case DataType.TypeUInt32: if (Value.Payload.Count() == 4) { obj = GetAsUInt32(); } break; case DataType.TypeInt64: if (Value.Payload.Count() == 8) { obj = GetAsInt64(); } break; case DataType.TypeUInt64: if (Value.Payload.Count() == 8) { obj = GetAsUInt64(); } break; case DataType.TypeFloat: if (Value.Payload.Count() == 4) { obj = GetAsFloat(); } break; case DataType.TypeDouble: if (Value.Payload.Count() == 8) { obj = GetAsDouble(); } break; case DataType.TypeDateTime: if (Value.Payload.Count() == 8) { obj = GetAsDateTime(); } break; case DataType.TypeDuration: if (Value.Payload.Count() == 8) { obj = GetAsDuration(); } break; case DataType.TypeGuid: if (Value.Payload.Count() == 4) { obj = GetAsDateTime(); } break; case DataType.TypeEnum: { CustomEnum customEnum = default(CustomEnum); int num = 0; int num2 = 0; customEnum.ordinal = BitConverter.ToInt16(Value.Payload, num); num += 2; num2 = BitConverter.ToInt32(Value.Payload, num) * 2; num += 4; customEnum.OrdinalValue = Encoding.Unicode.GetString(Value.Payload, num, num2); obj = customEnum; break; } case DataType.TypeUnknown: obj = Value; break; default: obj = GetAsString(); break; } if (obj != null) { result = (CustomEnum)Convert.ChangeType(obj, typeof(CustomEnum)); } } catch (InvalidCastException) { result = obj; } catch (FormatException) { result = obj; } catch (OverflowException) { result = obj; } return result; } public Array GetAsGenericArray() { Type type = CalculateVariableType(); if (type == null) { return new uint[0]; } int num = 0; uint num2 = BitConverter.ToUInt32(Value.Payload, num); num += 4; int[] array = new int[num2]; int[] array2 = new int[num2]; for (int i = 0; i < num2; i++) { array[i] = (int)BitConverter.ToUInt32(Value.Payload, num); num += 4; array2[i] = 0; } Array array3 = Array.CreateInstance(type, array); UnpackArray(Value.Payload, ref num, array3, array2, 0); return array3; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] private Type CalculateVariableType() { return GetVariantType() switch { DataType.TypeByteArray => typeof(byte), DataType.TypeCharArray => typeof(char), DataType.TypeInt16Array => typeof(short), DataType.TypeUInt16Array => typeof(ushort), DataType.TypeInt32Array => typeof(int), DataType.TypeUInt32Array => typeof(uint), DataType.TypeInt64Array => typeof(long), DataType.TypeUInt64Array => typeof(ulong), DataType.TypeFloatArray => typeof(float), DataType.TypeDoubleArray => typeof(double), DataType.TypeStringArray => typeof(string), DataType.TypeDateTimeArray => typeof(DateTime), DataType.TypeGuidArray => typeof(Guid), DataType.TypeByteStringArray => typeof(byte[]), DataType.TypeBoolArray => typeof(bool), DataType.TypeSByteArray => typeof(sbyte), _ => null, }; } private static void UnpackArray(byte[] Payload, ref int PayloadIndex, Array valueArray, int[] DimensionIndices, int Dimension) { if (Dimension == DimensionIndices.Count() - 1) { Type elementType = valueArray.GetType().GetElementType(); for (int i = 0; i < valueArray.GetLength(Dimension); i++) { DimensionIndices[Dimension] = i; UnpackArrayElement(Payload, ref PayloadIndex, elementType, valueArray, DimensionIndices); } } else { for (int j = 0; j < valueArray.GetLength(Dimension); j++) { DimensionIndices[Dimension] = j; UnpackArray(Payload, ref PayloadIndex, valueArray, DimensionIndices, Dimension + 1); } } } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] private static void UnpackArrayElement(byte[] Payload, ref int PayloadIndex, Type valueType, Array valueArray, int[] DimensionIndices) { if (Payload != null && valueArray != null) { if (valueType == typeof(bool)) { valueArray.SetValue(Payload[PayloadIndex] != 0, DimensionIndices); PayloadIndex++; } else if (valueType == typeof(sbyte)) { valueArray.SetValue(Payload[PayloadIndex], DimensionIndices); PayloadIndex++; } else if (valueType == typeof(byte)) { valueArray.SetValue(Payload[PayloadIndex], DimensionIndices); PayloadIndex++; } else if (valueType == typeof(ushort)) { valueArray.SetValue(BitConverter.ToUInt16(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 2; } else if (valueType == typeof(uint)) { valueArray.SetValue(BitConverter.ToUInt32(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 4; } else if (valueType == typeof(ulong)) { valueArray.SetValue(BitConverter.ToUInt64(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 8; } else if (valueType == typeof(short)) { valueArray.SetValue(BitConverter.ToInt16(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 2; } else if (valueType == typeof(int)) { valueArray.SetValue(BitConverter.ToInt32(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 4; } else if (valueType == typeof(long)) { valueArray.SetValue(BitConverter.ToInt64(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 8; } else if (valueType == typeof(float)) { valueArray.SetValue(BitConverter.ToSingle(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 4; } else if (valueType == typeof(double)) { valueArray.SetValue(BitConverter.ToDouble(Payload, PayloadIndex), DimensionIndices); PayloadIndex += 8; } else if (valueType == typeof(string)) { uint count = BitConverter.ToUInt32(Payload, PayloadIndex); PayloadIndex += 4; char[] chars = new UnicodeEncoding().GetChars(Payload, PayloadIndex, (int)count); valueArray.SetValue(new string(chars), DimensionIndices); } else if (valueType == typeof(DateTime)) { long ticks = BitConverter.ToInt32(Payload, PayloadIndex); PayloadIndex += 4; valueArray.SetValue(new DateTime(ticks), DimensionIndices); } else if (valueType == typeof(Guid)) { byte[] array = new byte[16]; Array.Copy(Payload, PayloadIndex, array, 0, 16); PayloadIndex += 16; Guid guid = new Guid(array); valueArray.SetValue(guid, DimensionIndices); } else if (valueType == typeof(byte[])) { uint num = BitConverter.ToUInt32(Payload, PayloadIndex); PayloadIndex += 4; byte[] array2 = new byte[num]; Array.Copy(Payload, PayloadIndex, array2, 0L, num); PayloadIndex += (int)num; valueArray.SetValue(array2, DimensionIndices); } } } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsInt32Array() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: if (Value.Payload.Count() >= 4) { int[] array2 = new int[Value.Length / 4]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToInt32(Value.Payload, num); num += 4; num2++; } return array2; } return new int[0]; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { int[] array3 = new int[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (int)Convert.ChangeType(array.GetValue(i), typeof(int)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsByteArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: if (Value.Payload.Count() >= 1) { return Value.Payload; } break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { byte[] array2 = new byte[array.Length]; for (int i = 0; i < array2.Length; i++) { try { array2[i] = (byte)Convert.ChangeType(array.GetValue(i), typeof(byte)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array2; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public char[] GetAsCharArray() { if (Value.Payload.Count() >= 2) { char[] array = new char[Value.Length / 2]; int num = 0; int num2 = 0; while (num < Value.Length) { array[num2] = BitConverter.ToChar(Value.Payload, num); num += 2; num2++; } return array; } return new char[0]; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsInt16Array() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: if (Value.Payload.Count() >= 2) { short[] array2 = new short[Value.Length / 2]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToInt16(Value.Payload, num); num += 2; num2++; } return array2; } break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { short[] array3 = new short[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (short)Convert.ChangeType(array.GetValue(i), typeof(short)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsUInt16Array() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: if (Value.Payload.Count() >= 2) { ushort[] array2 = new ushort[Value.Length / 2]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToUInt16(Value.Payload, num); num += 2; num2++; } return array2; } break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { ushort[] array3 = new ushort[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (ushort)Convert.ChangeType(array.GetValue(i), typeof(ushort)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsUInt32Array() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: if (Value.Payload.Count() >= 4) { uint[] array2 = new uint[Value.Length / 4]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToUInt32(Value.Payload, num); num += 4; num2++; } array = array2; } break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { uint[] array3 = new uint[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (uint)Convert.ChangeType(array.GetValue(i), typeof(uint)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsInt64Array() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeDuration: case DataType.TypeInt64Array: case DataType.TypeDurationArray: if (Value.Payload.Count() >= 8) { long[] array2 = new long[Value.Length / 8]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToInt64(Value.Payload, num); num += 8; num2++; } return array2; } break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { long[] array3 = new long[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (long)Convert.ChangeType(array.GetValue(i), typeof(long)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsUInt64Array() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: if (Value.Payload.Count() >= 8) { ulong[] array2 = new ulong[Value.Length / 8]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToUInt64(Value.Payload, num); num += 8; num2++; } return array2; } break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { ulong[] array3 = new ulong[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (ulong)Convert.ChangeType(array.GetValue(i), typeof(ulong)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsFloatArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: if (Value.Payload.Count() >= 4) { float[] array2 = new float[Value.Length / 4]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToSingle(Value.Payload, num); num += 4; num2++; } return array2; } break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { float[] array3 = new float[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (float)Convert.ChangeType(array.GetValue(i), typeof(float)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsDoubleArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: if (Value.Payload.Count() >= 8) { double[] array2 = new double[Value.Length / 8]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToDouble(Value.Payload, num); num += 8; num2++; } return array2; } break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { double[] array3 = new double[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (double)Convert.ChangeType(array.GetValue(i), typeof(double)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsStringArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeGuid: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeGuidArray: case DataType.TypeLocalizedTextArray: { if (Value.Payload.Count() <= 4) { break; } Queue queue = new Queue(); uint num = 0u; int num2; for (num2 = 0; num2 < Value.Length; num2 += (int)num) { num = BitConverter.ToUInt32(Value.Payload, num2); if (num2 + num >= Value.Length) { break; } num2 += 4; queue.Enqueue(Encoding.Unicode.GetString(Value.Payload, num2, (int)num)); } return queue.ToArray(); } case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; } if (array != null) { string[] array2 = new string[array.Length]; for (int i = 0; i < array2.Length; i++) { try { array2[i] = (string)Convert.ChangeType(array.GetValue(i), typeof(string)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array2; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsDateTimeArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: if (Value.Payload.Count() >= 8) { DateTime[] array2 = new DateTime[Value.Length / 8]; int num = 0; int num2 = 0; while (num < Value.Length) { long fileTime = BitConverter.ToInt64(Value.Payload, num); array2[num2] = DateTime.FromFileTimeUtc(fileTime); num += 8; num2++; } return array2; } break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { DateTime[] array3 = new DateTime[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (DateTime)Convert.ChangeType(array.GetValue(i), typeof(DateTime)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsDurationArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: if (Value.Payload.Count() >= 8) { TimeSpan[] array2 = new TimeSpan[Value.Length / 8]; int num = 0; int num2 = 0; while (num < Value.Length) { long value = BitConverter.ToInt64(Value.Payload, num); array2[num2] = TimeSpan.FromTicks(value); num += 8; num2++; } return array2; } break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { TimeSpan[] array3 = new TimeSpan[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (TimeSpan)Convert.ChangeType(array.GetValue(i), typeof(TimeSpan)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsGuidArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: if (Value.Payload.Count() > 4) { string[] array2 = (string[])GetAsStringArray(); Guid[] array3 = new Guid[array2.Length]; for (int i = 0; i < array2.Length; i++) { array3[i] = new Guid(array2[i]); } return array3; } break; } if (array != null) { Guid[] array4 = new Guid[array.Length]; for (int j = 0; j < array4.Length; j++) { try { if (array.GetValue(j).GetType() == typeof(string)) { string g = (string)array.GetValue(j); array4[j] = new Guid(g); } else { array4[j] = (Guid)Convert.ChangeType(array.GetValue(j), typeof(Guid)); } } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array4; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsBoolArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: if (Value.Payload.Count() >= 1) { bool[] array2 = new bool[Value.Length / 1]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = BitConverter.ToBoolean(Value.Payload, num); num++; num2++; } return array2; } break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { bool[] array3 = new bool[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (bool)Convert.ChangeType(array.GetValue(i), typeof(bool)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return array; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsSByteArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: if (Value.Payload.Count() >= 1) { sbyte[] array2 = new sbyte[Value.Length]; int num = 0; int num2 = 0; while (num < Value.Length) { array2[num2] = (sbyte)Value.Payload[num]; num++; num2++; } return array2; } break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; } if (array != null) { sbyte[] array3 = new sbyte[array.Length]; for (int i = 0; i < array3.Length; i++) { try { array3[i] = (sbyte)Convert.ChangeType(array.GetValue(i), typeof(sbyte)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array3; } return new sbyte[0]; } [GeneratedCode("Manually Avoid Code Metrics", "0.0.0.0")] public object GetAsEnumArray() { Array array = null; switch (GetVariantType()) { case DataType.TypeBool: case DataType.TypeBoolArray: array = (bool[])GetAsBoolArray(); break; case DataType.TypeDuration: case DataType.TypeDurationArray: array = (TimeSpan[])GetAsDurationArray(); break; case DataType.TypeByte: case DataType.TypeByteString: case DataType.TypeByteArray: case DataType.TypeByteStringArray: array = (byte[])GetAsByteArray(); break; case DataType.TypeSByte: case DataType.TypeSByteArray: array = (sbyte[])GetAsSByteArray(); break; case DataType.TypeInt16: case DataType.TypeInt16Array: array = (short[])GetAsInt16Array(); break; case DataType.TypeUInt16: case DataType.TypeUInt16Array: array = (ushort[])GetAsUInt16Array(); break; case DataType.TypeInt32: case DataType.TypeInt32Array: array = (int[])GetAsInt32Array(); break; case DataType.TypeUInt32: case DataType.TypeUInt32Array: array = (uint[])GetAsUInt32Array(); break; case DataType.TypeInt64: case DataType.TypeInt64Array: array = (long[])GetAsInt64Array(); break; case DataType.TypeUInt64: case DataType.TypeUInt64Array: array = (ulong[])GetAsUInt64Array(); break; case DataType.TypeFloat: case DataType.TypeFloatArray: array = (float[])GetAsFloatArray(); break; case DataType.TypeDouble: case DataType.TypeDoubleArray: array = (double[])GetAsDoubleArray(); break; case DataType.TypeString: case DataType.TypeLocalizedText: case DataType.TypeStringArray: case DataType.TypeLocalizedTextArray: array = (string[])GetAsStringArray(); break; case DataType.TypeDateTime: case DataType.TypeDateTimeArray: array = (DateTime[])GetAsDateTimeArray(); break; case DataType.TypeGuid: case DataType.TypeGuidArray: array = (Guid[])GetAsGuidArray(); break; case DataType.TypeEnum: case DataType.TypeEnumArray: { int num = 0; List list = new List(); int num2; for (num2 = 0; num2 < Value.Length; num2 += num) { CustomEnum item = new CustomEnum { ordinal = BitConverter.ToInt16(Value.Payload, num2) }; num2 += 2; num = BitConverter.ToInt32(Value.Payload, num2) * 2; if (num2 + num >= Value.Payload.Length) { break; } num2 += 4; item.OrdinalValue = Encoding.Unicode.GetString(Value.Payload, num2, num); list.Add(item); } array = list.ToArray(); break; } } if (array != null) { CustomEnum[] array2 = new CustomEnum[array.Length]; for (int i = 0; i < array2.Length; i++) { try { array2[i] = (CustomEnum)Convert.ChangeType(array.GetValue(i), typeof(CustomEnum)); } catch (InvalidCastException) { return array; } catch (FormatException) { return array; } catch (OverflowException) { return array; } } return array2; } return array; } }