Esempio n. 1
0
        /// <summary>
        /// Parses a single equality, editing the outer JObject
        /// </summary>
        /// <param name="equality"></param>
        /// <param name="outer"></param>
        /// <returns></returns>
        protected virtual JObject ParseEquality(Equality equality, JObject outer) {
            Field field = equality.FirstOrDefault(statement => statement is Field) as Field;
            Value value = equality.FirstOrDefault(statement => statement is Value) as Value;

            if (field != null && value != null) {
                String parsedField = this.ParseField(field);
                String parsedEquality = this.ParseEquality(equality);
                Object parsedValue = this.ParseValue(value);

                if (String.IsNullOrEmpty(parsedEquality) == true) {
                    outer.Add(new JProperty(parsedField, parsedValue));
                }
                else {
                    if (outer[parsedField] == null) {
                        outer[parsedField] = new JObject();
                    }

                    ((JObject)outer[parsedField]).Add(new JProperty(parsedEquality, parsedValue));
                }
            }

            return outer;
        }