static void Main(string[] args) { QueryEngine <int, string> QE = new QueryEngine <int, string>(); QueryEngine <string, string> QE1 = new QueryEngine <string, string>(); DBEngine <int, DBElement <int, List <string> > > dbPay = new DBEngine <int, DBElement <int, List <string> > >(); DBEngine <string, DBElement <string, List <string> > > dbString = new DBEngine <string, DBElement <string, List <string> > >(); DBElement <string, List <String> > elemString = new DBElement <string, List <String> >(); //Populating DBEngine elemString.name = "Element2"; //object dbString elemString.descr = "testelement2"; //for testing data string and list of string type. elemString.timeStamp = DateTime.Now; elemString.children.AddRange(new List <string> { "SMA1", "Syracuse2", "NY3" }); elemString.payload = new List <string>(); elemString.payload.AddRange(new List <string> { "we", "rock", "the ", "world" }); dbString.insert("Prohject2", elemString); DBElement <string, List <String> > elemString2 = new DBElement <string, List <String> >(); //Populating DBEngine elemString2.name = "Element3"; //object dbString elemString2.descr = "test element3"; //for testing data string and list of string type. elemString2.timeStamp = DateTime.Now; elemString2.children.AddRange(new List <string> { "SMA2", "Syracuse22", "NY33" }); elemString2.payload = new List <string>(); elemString2.payload.AddRange(new List <string> { "Thug", "Life" }); dbString.insert("Thug3", elemString2); DBElement <int, List <string> > elemPayload = new DBElement <int, List <string> >(); //Populating DBEngine elemPayload.name = "Element4"; //object dbPay elemPayload.descr = "test element4"; //for testing data int and list of string type. elemPayload.timeStamp = DateTime.Now; elemPayload.children.AddRange(new List <int> { 1, 2, 3 }); elemPayload.payload = new List <string>(); elemPayload.payload.AddRange(new List <string> { "Project 2", " ", "demo", " ", "starts" }); dbPay.insert(1, elemPayload); DBElement <int, List <string> > elemPayload2 = new DBElement <int, List <string> >(); //Populating DBEngine elemPayload2.name = "Element5"; //object dbPay elemPayload2.descr = "test element5"; //for testing data int and list of string type. elemPayload2.timeStamp = DateTime.Now; elemPayload2.children.AddRange(new List <int> { 98, 22, 35 }); elemPayload2.payload = new List <string>(); elemPayload2.payload.AddRange(new List <string> { "we", "rock", "the", "world" }); dbPay.insert(2, elemPayload2); QE.valueByKey(1, dbPay); WriteLine(); QE.childrenByKey(1, dbPay); WriteLine(); QE1.keyPattern(".*hjbbj.*", dbString); WriteLine(); QE.metaDataPattern("t2", dbString); DateTime toDate = new DateTime(2015, 10, 7); DateTime fromDate = new DateTime(2015, 10, 1); QE.dateTimeSearch(fromDate, toDate, dbString); }
static void Main(string[] args) { "Testing QueryEngine Package".title('='); WriteLine(); QueryEngine sendQuery = new QueryEngine(); DBElement <int, string> elem1 = new DBElement <int, string>("Element-1", "Description of Element-1"); elem1.payload = "Payload of element-1."; elem1.children.AddRange(new List <int> { 9, 10, 11, 79 }); DBElement <int, string> elem2 = new DBElement <int, string>("Element-2", "Description of Element-2"); elem2.payload = "Payload of element-2."; DBElement <int, string> elem3 = new DBElement <int, string>("Element-3", "Description of Element-3"); elem3.payload = "Payload of element-3."; DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); db.insert(1, elem1); db.insert(2, elem2); db.insert(3, elem3); db.showDB(); DBElement <int, string> result_elem = new DBElement <int, string>(); DBElement <int, string> result_elem2 = new DBElement <int, string>(); //DBElement<int, string> result_elem = new DBElement<int, string>(); Write("\n\n Send query -> Find element with key = 2"); result_elem = sendQuery.findValue <int, DBElement <int, string>, string>(db, 2); if (result_elem == null) { WriteLine("\n Element with Key= 2 was not found in the database."); } else { result_elem.showElement(); } Write("\n\n Send query -> Find element with key = 5"); result_elem = sendQuery.findValue <int, DBElement <int, string>, string>(db, 5); if (result_elem == null) { WriteLine("\n Element with Key= 5 was not found in the database."); } else { result_elem.showElement(); } Write("\n Send query -> Get children of element with key = 1"); List <int> x1 = sendQuery.getChildren <int, DBElement <int, string>, string>(db, 1); Write("\n Children of element with key=1 are "); foreach (int i in x1) { Write("{0} ", i); } Write("\n\n Send query -> Get children of element with key = 3"); List <int> y1 = sendQuery.getChildren <int, DBElement <int, string>, string>(db, 3); if (y1.Count() > 0) { Write("\n Children of element with key=3 are "); foreach (int i in y1) { Write("{0} ", i); } } else { WriteLine("\n Element with key=3 has no children."); } WriteLine("\n Send query -> Get keys with string -\"blah\" in metadata section."); List <int> m1 = sendQuery.get_keys_with_metadata <int, DBElement <int, string>, string>(db, "18779"); if (m1.Count() > 0) { Write(" Keys that contain the string \"ent-2\" in their metadata section are: "); foreach (int i in m1) { Write("{0} ", i); } } else { WriteLine(" No keys found having \"ent-2\" in their metadata section."); } //WriteLine("Type of x = {0}", x.ToString()); //----< Test query methods for DBEngine<string, DBElement<string, List<string>>> >---------- Write("\n\n --- Test Query methods for DBEngine<string, DBElement<string,List<string>>> ---"); DBElement <string, List <string> > new_elem1 = new DBElement <string, List <string> >("Element-One", "Description of Element-One"); new_elem1.payload = new List <string> { "First string in payload of Element-One", "Second string in payload of Element-One", "Third string" }; new_elem1.children.AddRange(new List <string> { "Nine", "Ten", "Eleven" }); System.Threading.Thread.Sleep(1200); DateTime tm1 = DateTime.Now; System.Threading.Thread.Sleep(1200); DBElement <string, List <string> > new_elem2 = new DBElement <string, List <string> >("Element-Two", "Description of Element-Two"); new_elem2.payload = new List <string> { "First string in payload of Element-Two", "Mars", "Venus" }; System.Threading.Thread.Sleep(1200); DBElement <string, List <string> > new_elem3 = new DBElement <string, List <string> >("Element-Three", "Description of Element-Three"); new_elem3.payload = new List <string> { "First string in payload of element-3", "Beta", "Gamma" }; DBEngine <string, DBElement <string, List <string> > > new_db = new DBEngine <string, DBElement <string, List <string> > >(); new_db.insert("One", new_elem1); new_db.insert("Two", new_elem2); new_db.insert("Three", new_elem3); DateTime tm2 = DateTime.Now; new_db.showEnumerableDB(); Write("\n\n Send query -> Find element with key = One"); if (sendQuery.findValue <string, DBElement <string, List <string> >, List <string> >(new_db, "One") == null) { WriteLine("\n Element with Key= \"One\" was not found in the database."); } else { sendQuery.findValue <string, DBElement <string, List <string> >, List <string> >(new_db, "One").showEnumerableElement(); } Write("\n\n Send query -> Find element with key = Five"); if (sendQuery.findValue <string, DBElement <string, List <string> >, List <string> >(new_db, "Five") == null) { WriteLine("\n Element with Key= \"Five\" was not found in the database."); } else { sendQuery.findValue <string, DBElement <string, List <string> >, List <string> >(new_db, "Five").showEnumerableElement(); } Write("\n Send query -> Get children of element with key = \"One\""); //List<int> x = sendQuery.getChildren<int, DBElement<int, string>, string>(db, 1); List <string> x = sendQuery.getChildren <string, DBElement <string, List <string> >, List <string> >(new_db, "One"); if (x.Count() > 0) { Write("\n Children of element with key=\"One\" are "); foreach (string i in x) { Write("{0} ", i); } } else { WriteLine("\n Element with key=\"One\" has no children."); } Write("\n\n Send query -> Get children list of element with key = \"Three\""); //List<int> x = sendQuery.getChildren<int, DBElement<int, string>, string>(db, 1); List <string> y = sendQuery.getChildren <string, DBElement <string, List <string> >, List <string> >(new_db, "Three"); if (y.Count > 0) { Write("\n Children of element with key=\"Three\" are "); foreach (string i in y) { Write("{0} ", i); } } else { WriteLine("\n Element with key=\"Three\" has no children."); } List <string> search_pat = new List <string> { "UnKnown", "lement" }; foreach (string pattern_in_metadata in search_pat) { WriteLine("\n Send query -> Get all keys containing string - \"{0}\" in their metadata section.", pattern_in_metadata); List <string> res1 = sendQuery.get_keys_with_metadata <string, DBElement <string, List <string> >, List <string> >(new_db, pattern_in_metadata); if (res1.Count > 0) { Write(" Keys containing string \"{0}\" in their metadata section are: ", pattern_in_metadata); foreach (string i in res1) { Write("{0} ", i); } } else { WriteLine(" No keys found containing pattern \"{0}\" in their metadata section.", pattern_in_metadata); } } WriteLine("\n\n Send query -> Get all keys written within time intervals \"{0}\" and \"{1}\"", tm1, tm2); List <string> result1 = sendQuery.get_keys_within_timeInterval <string, DBElement <string, List <string> >, List <string> >(new_db, tm1); if (result1.Count > 0) { Write(" Keys written within specified time intervals are: "); //Write(" Keys are: "); foreach (string i in result1) { Write("{0} ", i); } } else { WriteLine(" No keys found written withing specified time interevals tm1 and tm2."); } //WriteLine("tm1 = {0}\ntm2 = {1}", tm1, tm2); }