public static string Serialize(IResultSet resultSet)
        {
            IResultSetElement[]            elements          = resultSet.Elements.ToArray();
            IDictionary <string, object>[] convertedElements = new IDictionary <string, object> [elements.Length];

            for (int i = 0; i < elements.Length; i++)
            {
                IResultSetElement element = elements[i];

                IDictionary <string, object> convertedElement = new Dictionary <string, object>();

                foreach (string field in element.FieldNames)
                {
                    convertedElement.Add(field, element.GetValue(field));
                }

                convertedElements[i] = convertedElement;
            }


            using (TextWriter textWriter = new StringWriter())
            {
                JsonSerializer serializer = new JsonSerializer();
                serializer.Serialize(textWriter, convertedElements);

                return(textWriter.ToString());
            }
        }
Exemple #2
0
        public bool Equals(IResultSet x, IResultSet y)
        {
            IResultSetElement[] xElements = x.Elements.ToArray();
            IResultSetElement[] yElements = y.Elements.ToArray();

            if (xElements.Length != yElements.Length)
            {
                return(false);
            }

            int count = xElements.Length;

            for (int i = 0; i < count; i++)
            {
                IResultSetElement xElement = xElements[i];
                IResultSetElement yElement = yElements[i];

                if (!xElement.Equals(yElement))
                {
                    return(false);
                }
            }

            return(true);
        }
Exemple #3
0
        public bool Equals(IResultSet x, IResultSet y)
        {
            List <IResultSetElement> xElements = x.Elements.ToList();
            List <IResultSetElement> yElements = y.Elements.ToList();

            if (xElements.Count != yElements.Count)
            {
                return(false);
            }

            for (int i = 0; i < xElements.Count; i++)
            {
                IResultSetElement xElement = xElements[i];

                bool equals = false;

                int j = 0;
                for (; j < yElements.Count; j++)
                {
                    IResultSetElement yElement = yElements[j];

                    if (xElement.Equals(yElement))
                    {
                        equals = true;
                        break;
                    }
                }

                if (!equals)
                {
                    return(false);
                }
                else
                {
                    yElements.RemoveAt(j);
                }
            }

            return(true);
        }
        public override bool Equals(object obj)
        {
            IResultSetElement other = obj as IResultSetElement;

            if (other == null)
            {
                return(false);
            }

            if (this.FieldNames.Length != other.FieldNames.Length)
            {
                return(false);
            }

            for (int i = 0; i < this.FieldNames.Length; i++)
            {
                string name  = this.FieldNames[i];
                object value = this.GetValue(name);

                if (!other.HasValue(name))
                {
                    return(false);
                }

                object otherValue = other.GetValue(name);

                if (otherValue == null || value == null)
                {
                    return(otherValue == null && value == null);
                }

                if (!CompareValues(value, otherValue))
                {
                    return(false);
                }
            }

            return(true);
        }