示例#1
0
        private bool ValidateArrayDataTypes()
        {
            var dataTypeComparer = new ArrayDataTypeComparer(Field.DataType);

            for (int i = 0; i < Data.ArrayCount; i++)
            {
                if (Data.Array(i).Data.DataType.TypeId != Field.DataType.TypeId)
                {
                    return(false);
                }

                Data.Array(i).Data.DataType.Accept(dataTypeComparer);

                if (!dataTypeComparer.DataTypeMatch)
                {
                    return(false);
                }
            }
            return(true);
        }
示例#2
0
        public static bool Compare(Field expected, Field actual)
        {
            if (ReferenceEquals(expected, actual))
            {
                return(true);
            }

            if (expected.Name != actual.Name || expected.IsNullable != actual.IsNullable ||
                expected.HasMetadata != actual.HasMetadata)
            {
                return(false);
            }

            if (expected.HasMetadata)
            {
                if (expected.Metadata.Count != actual.Metadata.Count)
                {
                    return(false);
                }

                if (!expected.Metadata.Keys.All(k => actual.Metadata.ContainsKey(k) && expected.Metadata[k] == actual.Metadata[k]))
                {
                    return(false);
                }
            }

            var dataTypeComparer = new ArrayDataTypeComparer(expected.DataType);

            actual.DataType.Accept(dataTypeComparer);

            if (!dataTypeComparer.DataTypeMatch)
            {
                return(false);
            }

            return(true);
        }