public JItem(JItem parent, string name, JItemType type) { _parent = parent; _name = name; _type = type; _items = new List <JItem>(); }
public void ShowQueryWithDateTimeComparedToParameter( IEnumerable <JKeyValuePair> query, string[] args, string parameter, CompareType compareType, bool key = true, JItemType itemType = JItemType.String) { if (args.Contains(parameter)) { if (args.Length > (Array.IndexOf(args, parameter) + 1)) { Console.WriteLine($"Queries with date {compareType} {args[Array.IndexOf(args, parameter) + 1]}"); var higherMarks = from JKeyValuePair pair in query where pair.ContainsDateTimeValue() select pair; var higherMarksObjects = higherMarks .Where(p => CompareByMethod( p.GetDateTimeValue(), DateTime.Parse(args[Array.IndexOf(args, parameter) + 1]), compareType) ) .Select(x => x.FindContainerOrReturnParent(new JString("Student"))); ShowQuery(higherMarksObjects); } } }
public static JSingleValue Factory(JItemType itemType, string value) { switch (itemType) { case JItemType.SingleValue: return(new JSingleValue(value)); case JItemType.String: return(new JString(value)); } return(null); }
public void ShowQueryEqualByParameter( IEnumerable <JKeyValuePair> query, string[] args, string parameter, bool key = true, JItemType itemType = JItemType.SingleValue) { if (args.Contains(parameter)) { if (args.Length > (Array.IndexOf(args, parameter) + 1)) { Console.WriteLine($"Queries with value Equal to {args[Array.IndexOf(args, parameter) + 1]}"); var student = new JString("Student"); var certainQuery = query.Where(x => (key ? x.Key : x.Value) .Equals(JItem.Factory(itemType, args[Array.IndexOf(args, parameter) + 1])) ).Select(x => x.FindContainerOrReturnParent(student)); ShowQuery(certainQuery); } } }