static void Main(string[] args) { "Testing persist engine package".title(); DBEngine<string, DBElement<string, List<string>>> dbString = new DBEngine<string, DBElement<string, List<string>>>(); DBElement<string, List<String>> elemString = new DBElement<string, List<String>>(); elemString.name = "Element2"; elemString.descr = "testelement2"; 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" }); //elem.showElement(); dbString.insert("Prohject2", elemString); DBElement<string, List<String>> elemString2 = new DBElement<string, List<String>>(); elemString2.name = "Element3"; elemString2.descr = "test element3"; 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" }); //elem.showElement(); dbString.insert("Thug3", elemString2); PersistEngine<string> test = new PersistEngine<string>(); test.createXML(dbString); }
public bool edit(Key key, string attribute, string newValue, DBEngine <Key, DBElement <Key, string> > db) { bool test = db.getValue(key, out elem); if (!test) { return(false); } else { if (attribute == "name") { elem.name = newValue; db.insert(key, elem); } else if (attribute == "descr") { elem.descr = newValue; db.insert(key, elem); } return(true); } }
static void Main(string[] args) { DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); DBElement <int, string> elem = new DBElement <int, string>(); //Populating DBEngine elem.name = "Element2"; //object db elem.descr = "test element2"; //for testing data int and string type. elem.timeStamp = DateTime.Now; elem.children.AddRange(new List <int> { }); elem.payload = "Varun"; db.insert(1, elem); DBElement <int, string> elem1 = new DBElement <int, string>(); //Populating DBEngine elem1.name = "Key/Value pair to be edited"; //object db elem1.descr = "test element3"; //for testing data int and string type. elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 4, 5, 6 }); elem1.payload = "EDIT !"; db.insert(2, elem1); DBFactory <int, DBElement <int, string> > dff = new DBFactory <int, DBElement <int, string> >(db); dff.getValue(1, out elem1); Console.WriteLine(elem1.name); }
public static void Main(string[] args) { "Testing Item Editor Package".title('='); Console.WriteLine(); DBEngine <int, DBElement <int, List <string> > > dbPay = new DBEngine <int, DBElement <int, List <string> > >(); DBElement <int, List <string> > elemPayload = new DBElement <int, List <string> >(); elemPayload.name = "Element4"; elemPayload.descr = "test element4"; 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" }); //elem.showElement(); dbPay.insert(4, elemPayload); DBElement <int, List <string> > elemPayload2 = new DBElement <int, List <string> >(); elemPayload2.name = "Element5"; elemPayload2.descr = "test element5"; 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" }); //elem.showElement(); dbPay.insert(5, elemPayload2); dbPay.showEnumerableDB(); Console.WriteLine(); ItemEditor <int, string> itemEdit = new ItemEditor <int, string>(); itemEdit.edit(4, "name", "updated", dbPay); itemEdit.edit(4, "descr", "updated", dbPay); List <int> child = new List <int> { 3, 2, 1 }; itemEdit.editChildern(4, "childern", child, dbPay); List <string> payLoad = new List <string> { "Update", " ", "demo", " ", "starts" }; itemEdit.editPayload(4, "pay-load", payLoad, dbPay); dbPay.showEnumerableDB(); }
static void Main(string[] args) { "Testing ItemEditor Package".title('='); Console.WriteLine(); DBEngine <int, DBElement <int, ListOfStrings> > db1 = new DBEngine <int, DBElement <int, ListOfStrings> >(); ItemEditor <int, string> itemEditor = new ItemEditor <int, string>(); "For key = 1, metadata before editing is: ".title('-'); DBElement <int, ListOfStrings> elem1 = new DBElement <int, ListOfStrings>(); elem1.name = "1st Key/Value = Int/ListOfStrings"; elem1.descr = "This is first element of Int/ListOfStrings key value pair."; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 100, 101, 102, 103, 104, 105 }); elem1.payload = new ListOfStrings(); elem1.payload.theWrappedData = new List <string> { "CSE681", "SMA", "C#.net", "AI" }; db1.insert(1, elem1); db1.showDB(); Console.WriteLine("\n\n"); "For key = 1, metadata after editing is: ".title('-'); itemEditor.editByName(ref db1, 1, "NewX"); itemEditor.editByDescr(ref db1, 1, "NewDescription"); db1.showDB(); Console.WriteLine("\n\n"); }
void TestR8() { "Demonstrating Requirement #8".title(); DBFactory <string, DBElement <string, List <string> > > dbFac; // immutable db object DBEngine <string, DBElement <string, List <string> > > dbImmut = new DBEngine <string, DBElement <string, List <string> > >(); List <string> fetchedKeys = new List <string>(); fetchedKeys = QE1.keyPattern(".*hu.*", dbString); foreach (string key in fetchedKeys) { DBElement <string, List <String> > elem = new DBElement <string, List <String> >(); dbString.getValue(key, out elem); dbImmut.insert(key, elem); } //dbImmut.showEnumerableDB(); dbFac = new DBFactory <string, DBElement <string, List <string> > >(dbImmut); // populating immutable db WriteLine("\nDisplaying the contents of the immutable database"); dbFac.showEnumerableDB(); WriteLine(); }
static void Main(string[] args) { "Testing Scheduler Package".title('='); Console.WriteLine(); DBEngine <int, DBElement <int, ListOfStrings> > dbEngineType1 = new DBEngine <int, DBElement <int, ListOfStrings> >(); DBElement <int, ListOfStrings> elem = new DBElement <int, ListOfStrings>(); "Testing function makeDataForDB() by creating metadata for Type1 = <string,ListOfStrings> and Type2 = <int,string>".title('-'); elem.name = "X"; elem.descr = "description"; elem.timeStamp = DateTime.Now; elem.payload = new ListOfStrings(); elem.payload.theWrappedData = new List <string> { "payload1", "payload2" }; dbEngineType1.insert(1, elem); "Scheduler is persisting data every one second. Press any key to exit".title('-'); Scheduler schd = new Scheduler(1000, dbEngineType1); schd.schedular.Enabled = true; Console.ReadKey(); Console.Write("\n\n"); }
/*------------------------Function to get the project dependancy from the Xml file----------------*/ public void displayDependancy() { try { XDocument xmlDoc = XDocument.Load(".\\projectDependancy.xml"); var dependancy = from y in xmlDoc.Descendants("Project") //fetch values from the xml select new DBElement <string, List <string> >() { key = y.Descendants("Package").FirstOrDefault().Value, name = y.Descendants("Package").FirstOrDefault().Value, descr = y.Descendants("Package").FirstOrDefault().Value + " dependancy packages", children = y.Descendants("Relationship").Descendants("package").Select(package => { return(package.Value); }).ToList(), payload = y.Descendants("Relationship").Descendants("package").Select(package => { return(package.Value); }).ToList(), }; foreach (dynamic value in dependancy) { db.insert(value.key, value); } } catch (Exception e) { Console.WriteLine("\nThe error is {0}.\n", e.Message); } }
//private DBEngine<int, DBElement<int, string>> db2 = new DBEngine<int, DBElement<int, string>>(); void TestR2() { "Demonstrating Requirement #2".title(); DBElement <int, string> elem = new DBElement <int, string>(); elem.name = "element"; elem.descr = "test element"; elem.timeStamp = DateTime.Now; elem.children.AddRange(new List <int> { 1, 2, 3 }); elem.payload = "elem's payload"; elem.showElement(); db.insert(1, elem); Write("\n\n Show key/value pairs in data base:\n"); db.showDB(); WriteLine(); }
static void Main(string[] args) { "Testing Scheduler package".title(); //Loading DB for testing DBEngine <string, DBElement <string, List <string> > > dbString = new DBEngine <string, DBElement <string, List <string> > >(); DBElement <string, List <String> > elemString = new DBElement <string, List <String> >(); elemString.name = "Element2"; elemString.descr = "testelement2"; 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> >(); elemString2.name = "Element3"; elemString2.descr = "test element3"; 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); Scheduler <string> sch = new Scheduler <string>(); sch.scheduledSave(dbString); }
void TestR2() { DBElement <int, string> elem = new DBElement <int, string>(); elem.name = "India"; elem.descr = "Country"; elem.timeStamp = DateTime.Now; elem.children.AddRange(new List <int> { 2, 3 }); elem.payload = "Famous cricket player"; WriteLine(); "1) The element is as shown below".title(); elem.showElement(); db.insert(1, elem); WriteLine(); "2) The key Value pair is shown below".title(); db.showDB(); WriteLine(); }
void testR2() { "Demonstrating Requirement #2".title(); DBElement <int, String> elem = new DBElement <int, string>(); elem.name = "text element"; elem.descr = "descr"; elem.timeStamp = DateTime.Now; elem.payload = "elem's payload"; elem.children.AddRange(new [] { 1, 2, 3 }); elem.showElement(); db.insert(1, elem); db.showDB(); WriteLine(); }
public bool editPayload(Key key, string attribute, List <string> newValue, DBEngine <Key, DBElement <Key, List <string> > > db) { bool test = db.getValue(key, out elemPay); if (!test) { return(false); } else { elemPay.payload = newValue; db.insert(key, elemPay); } return(true); }
public bool editChildern(Key key, string attribute, List <Key> newValue, DBEngine <Key, DBElement <Key, string> > db) { bool test = db.getValue(key, out elem); if (!test) { return(false); } else { elem.children = newValue; db.insert(key, elem); } return(true); }
public void WriteToDBEngine() { List <int> keyList = new List <int>(); var q = from x in xml.Elements("noSqlDb") .Elements("key") select x; foreach (var elem in q) { int key = Int32.Parse(elem.Value.Substring(3)); keyList.Add(key); } int i = 0; var p = from x in xml.Elements("noSqlDb") .Elements("element") select x; foreach (var elem in p) { temp = new DBElement <int, string>(); // add the data to objcet temp.name = (elem as XElement).Descendants("name").First().Value; temp.descr = (elem as XElement).Descendants("descr").First().Value; temp.timeStamp = Convert.ToDateTime((elem as XElement).Descendants("timeStamp").First().Value); temp.payload = (elem as XElement).Descendants("payload").First().Value; var a = from x in (elem as XElement).Elements("children").Descendants() select x; foreach (var child in a) { temp.children.Add(Int32.Parse(child.Value.Substring(3))); } db.insert(keyList[i], temp); i++; } //Console.Write("\n {0}", elem.Value); //Console.Write("\n\n"); }
static void Main(string[] args) { "Testing DBExtensions Package".title('='); WriteLine(); Write("\n --- Test DBElement<int,string> ---"); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.payload = "a payload"; Write(elem1.showElement <int, string>()); DBEngine <int, DBElement <int, string> > dbs = new DBEngine <int, DBElement <int, string> >(); dbs.insert(1, elem1); dbs.show <int, DBElement <int, string>, string>(); WriteLine(); Write("\n --- Test DBElement<string,List<string>> ---"); DBElement <string, List <string> > newelem1 = new DBElement <string, List <string> >(); newelem1.name = "newelem1"; newelem1.descr = "test new type"; newelem1.children = new List <string> { "Key1", "Key2" }; newelem1.payload = new List <string> { "one", "two", "three" }; Write(newelem1.showElement <string, List <string>, string>()); DBEngine <string, DBElement <string, List <string> > > dbe = new DBEngine <string, DBElement <string, List <string> > >(); dbe.insert("key1", newelem1); dbe.show <string, DBElement <string, List <string> >, List <string>, string>(); Write("\n\n"); }
static void Main(string[] args) { "Testing DBEngine Package".title('='); WriteLine(); Write("\n --- Test DBElement<int,string> ---"); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.payload = "a payload"; Write(elem1.showElementWithTestType1 <int>()); WriteLine(); DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord"); elem2.payload = "The Empire strikes back!"; Write(elem2.showElementWithTestType1 <int>()); WriteLine(); var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot"); elem3.payload = "X-Wing fighter in swamp - Oh oh!"; Write(elem3.showElementWithTestType1 <int>()); WriteLine(); Write("\n --- Test DBEngine<int,DBElement<int,string>> ---"); int key = 0; Func <int> keyGen = () => { ++key; return(key); }; // anonymous function to generate keys DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); bool p1 = db.insert(keyGen(), elem1); bool p2 = db.insert(keyGen(), elem2); bool p3 = db.insert(keyGen(), elem3); if (p1 && p2 && p3) { Write("\n all inserts succeeded"); } else { Write("\n at least one insert failed"); } db.showWithTestType1 <int>(); WriteLine(); Write("\n --- Test DBElement<string,List<string>> ---"); DBElement <string, List <string> > newelem1 = new DBElement <string, List <string> >(); newelem1.name = "newelem1"; newelem1.descr = "test new type"; newelem1.payload = new List <string> { "one", "two", "three" }; Write(newelem1.showElementWithTestType2 <string>()); WriteLine(); Write("\n --- Test DBElement<string,IEnumWrapper<string>> ---"); DBElement <string, List <string> > newerelem1 = new DBElement <string, List <string> >(); newerelem1.name = "newerelem1"; newerelem1.descr = "better formatting"; newerelem1.payload = new List <string> { "alpha", "beta", "gamma" }; newerelem1.payload.Add("delta"); newerelem1.payload.Add("epsilon"); Write(newerelem1.showElementWithTestType2 <string>()); WriteLine(); DBElement <string, List <string> > newerelem2 = new DBElement <string, List <string> >(); newerelem2.name = "newerelem2"; newerelem2.descr = "better formatting"; newerelem1.children.AddRange(new[] { "first", "second" }); newerelem2.payload = new List <string> { "a", "b", "c" }; newerelem2.payload.Add("d"); newerelem2.payload.Add("e"); Write(newerelem2.showElementWithTestType2 <string>()); WriteLine(); Write("\n --- Test DBEngine<string,DBElement<string,IEnumWrapper<string>>> ---"); int seed = 0; string skey = seed.ToString(); Func <string> skeyGen = () => { ++seed; skey = "string" + seed.ToString(); skey = skey.GetHashCode().ToString(); return(skey); }; DBEngine <string, DBElement <string, List <string> > > newdb = new DBEngine <string, DBElement <string, List <string> > >(); newdb.insert(skeyGen(), newerelem1); newdb.insert(skeyGen(), newerelem2); newdb.showWithTestType2 <string>(); Write("\n\n"); }
static void Main(string[] args) { "Testing PersistEngine Package".title('='); WriteLine(); DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); "\nSave to an XML file".title(); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.name = "Usain Bolt"; elem1.descr = "Athelte"; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 2 }); elem1.payload = "Fastest in the world"; db.insert(1, elem1); DBElement <int, string> elem2 = new DBElement <int, string>(); elem2.name = "Saina Nehwal"; elem2.descr = "Badminton Player"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <int> { 1 }); elem2.payload = "Famous badminton player"; db.insert(2, elem2); db.showDB(); WriteLine(); dynamic allKeys = db.Keys(); PersistEngine <int, DBElement <int, string> > pEngine = new PersistEngine <int, DBElement <int, string> >(db); pEngine.persistToXML(allKeys); WriteLine("\n\nAbove database is stored as XML file in local machine"); WriteLine(); WriteLine("\nThe persisted XML file along with new key/value pairs are augmented to the database.\n"); WriteLine("Below shown key/value pairs are augmented to the database.\n"); pEngine.augmentDatabaseFromXML(db); //Augment the persisted database along with new values to the main database pEngine.persistToXML(allKeys); db.showDB(); WriteLine(); WriteLine(); "\nPersist database every 5 seconds until its cancelled".title(); WriteLine(); pEngine.scheduledSaveDatabase(); WriteLine(); WriteLine(); "\nProject dependancy and realtionships".title(); WriteLine(); DBEngine <string, DBElement <string, List <string> > > dependancyDb = new DBEngine <string, DBElement <string, List <string> > >(); PersistEngine <string, DBElement <string, List <string> > > pEngineString = new PersistEngine <string, DBElement <string, List <string> > >(dependancyDb); try { Console.WriteLine("\nBelow details provide information on dependancy of every package in the project\n"); pEngine.displayDependancy(); dependancyDb.showEnumerableDB(); WriteLine(); } catch (Exception e) { WriteLine("\n" + e.Message + "\n"); } }
public TestExec() { 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", "start" }); 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); DBElement <int, string> elem = new DBElement <int, string>(); //Populating DBEngine elem.name = "Element2"; //object db elem.descr = "test element2"; //for testing data int and string type. elem.timeStamp = DateTime.Now; elem.children.AddRange(new List <int> { }); elem.payload = "Varun"; db.insert(1, elem); DBElement <int, string> elem1 = new DBElement <int, string>(); //Populating DBEngine elem1.name = "Key/Value pair to be edited"; //object db elem1.descr = "test element3"; //for testing data int and string type. elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 4, 5, 6 }); elem1.payload = "EDIT !"; db.insert(2, elem1); }
void TestR7() { "\n1) Fetch Value for key 3".title(); var val = db.getValueOfKey(3); val.showElement(); WriteLine(); qEngine = new QueryEngine <int, DBElement <int, string> >(db); "\n2) Fetch the children of key 1".title(); var children = qEngine.getChildrenOfKey(1); displayChildren(children); "\n3) Fetch the keys which starts with r in the below database with key/value pairs".title(); //Taking new database with string keys DBElement <string, List <string> > elem = new DBElement <string, List <string> >(); elem.name = "Christ college"; elem.descr = "College where the person studied"; elem.timeStamp = DateTime.Now; elem.children.AddRange(new List <string> { "rakesh" }); elem.payload = new List <string> { "One", "Two", "Three", "Four" }; dbString.insert("saahith", elem); DBElement <string, List <string> > elem1 = new DBElement <string, List <string> >(); elem1.name = "PESIT college"; elem1.descr = "College where the person pursued undergraduation"; elem1.timeStamp = DateTime.Now.AddDays(-2); elem1.children.AddRange(new List <string> { "saahith" }); elem1.payload = new List <string> { "Five", "Six", "Seven", "Eight" }; dbString.insert("rakesh", elem1); dbString.showEnumerableDB(); WriteLine(); qEngine2 = new QueryEngine <string, DBElement <string, List <string> > >(dbString); string pattern1 = @"(^r)"; var spKeys = qEngine2.getListStringKeyPattern(pattern1); displayStringKeys(spKeys); "\n4) Fetch keys with metadata pattern 'Name'".title(); string pattern = "Name"; var mdKeys = qEngine.getListMetaDataPattern(pattern); displayKeys(mdKeys); "\n5) Fetch keys which are created between two dates 29th sept 2015 and 15th oct 2015".title(); DateTime time1 = new DateTime(2015, 9, 29); DateTime time2 = new DateTime(2015, 10, 15); var tpKeys = qEngine.getListTimePattern(time1, time2); displayKeys(tpKeys); }
static void Main(string[] args) { "Testing DBFactory Package".title('='); WriteLine(); "\nCreation of immutable database".title(); WriteLine(); "\nOriginal database".title(); DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.name = "India"; elem1.descr = "Country"; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 2, 3 }); elem1.payload = "Famous cricket player"; db.insert(1, elem1); DBElement <int, string> elem2 = new DBElement <int, string>(); elem2.name = "Roger federer"; elem2.descr = "Tennis player"; elem2.timeStamp = DateTime.Now.AddDays(-15); elem2.children.AddRange(new List <int> { 3 }); elem2.payload = "Famous tennis player"; db.insert(2, elem2); DBElement <int, string> elem3 = new DBElement <int, string>(); elem3.name = "Usain Bolt"; elem3.descr = "Athelte"; elem3.timeStamp = DateTime.Now; elem3.children.AddRange(new List <int> { 1 }); elem3.payload = "Fastest in the world"; db.insert(3, elem3); DBElement <int, string> elem4 = new DBElement <int, string>(); elem4.name = "Saina Nehwal"; elem4.descr = "Badminton Player"; elem4.timeStamp = DateTime.Now; elem4.children.AddRange(new List <int> { 2 }); elem4.payload = "Famous badminton player"; db.insert(4, elem4); db.showDB(); WriteLine(); "\n Fetch all the keys which are even from the above database".title(); try { QueryEngine <int, DBElement <int, string> > qEngine = new QueryEngine <int, DBElement <int, string> >(db); Dictionary <int, DBElement <int, string> > dictFactory = new Dictionary <int, DBElement <int, string> >(); DBFactory <int, DBElement <int, string> > dbFactory; var keys = qEngine.getListKeyPattern(); if (keys != null) { foreach (var key in keys) { var val = db.getValueOfKey(key); dictFactory.Add(key, val); //add keys and values to the dictionary } dbFactory = new DBFactory <int, DBElement <int, string> >(dictFactory); //store the dictionary in the WriteLine("\nThe below key/value pairs with even keys pattern are saved as an immutable database\n"); dbFactory.showDB(); //display the immutable database WriteLine(); WriteLine(); } else { WriteLine("\nNo keys are obtained from a query for creation of immutable database\n"); } WriteLine(); WriteLine(); } catch (Exception e) { Console.WriteLine("\n" + e.Message + "\n"); } }
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); //QE1.keyPattern(".*h.*", dbString); WriteLine(); QE1.keyPattern(".*hjbbj.*", dbString); WriteLine(); QE.metaDataPattern("t2", dbString); //DateTime toDate = new DateTime(2015, 10, 7); DateTime toDate = new DateTime(2015, 10, 7); DateTime fromDate = new DateTime(2015, 10, 1); //System.Threading.Thread.Sleep(500); QE.dateTimeSearch(fromDate, toDate, dbString); }
public void readXml(DBEngine <Key, DBElement <Key, List <string> > > dbRead) { XmlDocument doc = new XmlDocument(); //creating object of XmlDocument Class if (File.Exists("yyy.xml")) { try { doc.Load("yyy.xml"); } catch (Exception e) { WriteLine("\n Wrong Input file. Error Message : {0}\n", e.Message); } } else { WriteLine("\n File \" yyy.xml \" does not exist."); return; } doc.Save(Console.Out); //Printing XML file on the console foreach (XmlNode node in doc.GetElementsByTagName("noSqlDb")) { DBElement <Key, List <string> > elemRead = null; foreach (XmlNode node2 in node.ChildNodes) { if (node2.Name == "key") // Capturing the Parent key { first += 1; if (first > 0 && first % 2 == 1) { elemRead = new DBElement <Key, List <string> >(); } keyParent = (Key)Convert.ChangeType(node2.InnerText, typeof(Key)); } else if (node2.Name == "element") //Capturing Element Tag { first += 1; foreach (XmlNode node3 in node2.ChildNodes) { if (node3.Name == "name") // Capturing Metadata "Name" { elemRead.name = node3.InnerText; } else if (node3.Name == "descr") // Capturing Metadata "description" { elemRead.descr = node3.InnerText; } else if (node3.Name == "timeStamp") // Capturing Metadata "Time Stamp" { elemRead.timeStamp = DateTime.Parse(node3.InnerText); } else if (node3.Name == "children") // Capturing childen of the Parent Key { List <Key> childRead = new List <Key>(); foreach (XmlNode node4 in node3.ChildNodes) { if (node4.Name == "key") { childRead.Add((Key)Convert.ChangeType(node4.InnerText, typeof(Key))); } } elemRead.children = childRead; } else if (node3.Name == "payload") // Capturing Value/Payload { List <string> payloadRead = new List <string>(); foreach (XmlNode node5 in node3.ChildNodes) { if (node5.Name == "item") { payloadRead.Add(node5.InnerText); } } elemRead.payload = payloadRead; } } } if (first > 0 && first % 2 == 0) { dbRead.insert(keyParent, elemRead); // Inserting captured records into the database first = 0; } } } }
static void Main(string[] args) { "Testing QueryProcessing Package".title('='); WriteLine(); DBEngine <int, DBElement <int, ListOfStrings> > db1 = new DBEngine <int, DBElement <int, ListOfStrings> >(); DBElement <int, ListOfStrings> elem1 = new DBElement <int, ListOfStrings>(); elem1.name = "1st Key/Value = Int/ListOfStrings"; elem1.descr = "This is first element of Int/ListOfStrings key value pair."; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 100, 101, 102, 103, 104, 105 }); elem1.payload = new ListOfStrings(); elem1.payload.theWrappedData = new List <string> { "CSE681", "SMA", "C#.net", "AI" }; db1.insert(1, elem1); DBElement <int, ListOfStrings> elem2 = new DBElement <int, ListOfStrings>(); elem2.name = "element int-ListOfString 2"; elem2.descr = "test element int-ListOfString 2"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <int> { 10, 22, 23, 24, 25, 26 }); elem2.payload = new ListOfStrings(); elem2.payload.theWrappedData = new List <string> { "CSE6812", "SMA2", "C#.net2", "AI2" }; db1.insert(2, elem2); WriteLine(" Query : value of key = 2"); QueryProcessEngine <int, ListOfStrings> queryEngine = new QueryProcessEngine <int, ListOfStrings>(db1); DBElement <int, ListOfStrings> result; queryEngine.processValueQuery(14, out result); result.showElement(); WriteLine(" Query : Children of key = 1"); List <int> childrens; queryEngine.processChildrenQuery(1, out childrens); foreach (var item in childrens) { WriteLine(item); } WriteLine(); "The set of all keys matching a specified pattern which defaults to all keys.".title('-'); Dictionary <int, DBElement <int, ListOfStrings> > results; queryEngine.processPatternMatchInKeysQuery(queryEngine.defineQueryKeyPatternSearch("1"), out results); DBFactory <int, DBElement <int, ListOfStrings> > dbFactory = new DBFactory <int, DBElement <int, ListOfStrings> >(results); dbFactory.showDBFactory(); WriteLine(); "All keys that contain a specified string in their metadata section.".title('-'); results.Clear(); queryEngine.processPatternMatchInMetaDataQuery(queryEngine.defineQueryValuePatternSearch("Scheduler"), out results); dbFactory = new DBFactory <int, DBElement <int, ListOfStrings> >(results); dbFactory.showDBFactory(); WriteLine(); "All keys that contain values written within a specified time-date interval".title('-'); DateTime dt1 = new DateTime(1990, 6, 14, 0, 0, 0); DateTime dt2 = new DateTime(1990, 6, 17, 0, 0, 0); results.Clear(); queryEngine.processTimeIntervalQuery(queryEngine.defineTimeStampQuery(dt1, dt2), out results); dbFactory.showDBFactory(); }
void TestR2() { "Demonstrating Requirement #2".title('='); // First type of database. " First Type of database.".title('-'); DBElement <int, string> elem = new DBElement <int, string>(); elem.name = "1st Key/Value = Int/String"; elem.descr = "This is the first element which is int/string key value pair."; elem.timeStamp = DateTime.Now; elem.children.AddRange(new List <int> { 10, 11, 12 }); elem.payload = "Payload : Key/Value = Int/String"; db2.insert(1, elem); DBElement <int, string> elem21 = new DBElement <int, string>(); elem21.name = "2nd Key/Value = Int/String"; elem21.descr = "This is the second element which is int/string key value pair."; elem21.timeStamp = DateTime.Now; elem21.children.AddRange(new List <int> { 20, 21, 22 }); elem21.payload = "Payload 2 : Key/Value = Int/String"; db2.insert(1, elem21); WriteLine(" This shows Int/String key/value paris data in-memory database."); db2.showDB(); WriteLine(); // second type of database. WriteLine(); " Second Type of database.".title('-'); WriteLine(); DBElement <int, ListOfStrings> elem1 = new DBElement <int, ListOfStrings>(); elem1.name = "1st Key/Value = Int/ListOfStrings"; elem1.descr = "This is first element of Int/ListOfStrings key value pair."; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 100, 101, 102, 103, 104, 105 }); elem1.payload = new ListOfStrings(); elem1.payload.theWrappedData = new List <string> { "CSE681", "SMA", "C#.net", "AI" }; db1.insert(1, elem1); DBElement <int, ListOfStrings> elem2 = new DBElement <int, ListOfStrings>(); elem2.name = "element int-ListOfString 2"; elem2.descr = "test element int-ListOfString 2"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <int> { 10, 22, 23, 24, 25, 26 }); elem2.payload = new ListOfStrings(); elem2.payload.theWrappedData = new List <string> { "CSE6812", "SMA2", "C#.net2", "AI2" }; db1.insert(2, elem2); WriteLine(" This shows Int/ListOfString key/value paris data in-memory database."); db1.showDB(); WriteLine(); }
void TestR12() { try { "\nThe database is shown below:".title(); WriteLine("\n Key: Apple"); DBElement <string, List <string> > elem1 = new DBElement <string, List <string> >(); elem1.name = "Apple"; elem1.descr = "Type of fruit"; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <string> { "three" }); elem1.payload = new List <string> { "Seven" }; elem1.category = new List <string> { "fruit", "drink" }; dbCategory.insert("Apple", elem1); elem1.showEnumerableElement(); displayCategory(elem1.category); WriteLine("\n Key: Banana"); DBElement <string, List <string> > elem2 = new DBElement <string, List <string> >(); elem2.name = "Banana"; elem2.descr = "Type of fruit"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <string> { "two" }); elem2.payload = new List <string> { "Five", "Six" }; elem2.category = new List <string> { "fruit" }; dbCategory.insert("Banana", elem2); elem2.showEnumerableElement(); displayCategory(elem2.category); WriteLine("\n Key: Blackberry"); DBElement <string, List <string> > elem3 = new DBElement <string, List <string> >(); elem3.name = "Blackberry"; elem3.descr = "Type of fruit or phone"; elem3.timeStamp = DateTime.Now; elem3.children.AddRange(new List <string> { "one" }); elem3.payload = new List <string> { "Eight" }; elem3.category = new List <string> { "fruit", "phone" }; dbCategory.insert("Blackberry", elem3); elem3.showEnumerableElement(); displayCategory(elem3.category); dictCategory = new Dictionary <string, List <string> >(); dictCategory.Add("fruit", new List <string> { "Apple", "Banana" }); List <string> values = new List <string>(); dictCategory.TryGetValue("fruit", out values); dynamic result = qEngine.getKeyForCategory(dbCategory, values); "\nMatched keys for category 'fruit'".title(); displayStringKeys(result); } catch (Exception e) { WriteLine("\n" + e.Message + "\n"); } }
static void Main(string[] args) { "Testing ItemEditor Package".title('='); Console.WriteLine(); DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.name = "India"; elem1.descr = "Country"; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 2, 3 }); elem1.payload = "Famous cricket player"; db.insert(1, elem1); DBElement <int, string> elem2 = new DBElement <int, string>(); //Add new key/value pairs to the database elem2.name = "Roger federer"; elem2.descr = "Tennis player"; elem2.timeStamp = DateTime.Now.AddDays(-15); elem2.children.AddRange(new List <int> { 3 }); elem2.payload = "Famous tennis player"; db.insert(2, elem2); DBElement <int, string> elem3 = new DBElement <int, string>(); elem3.name = "Usain Bolt"; elem3.descr = "Athelte"; elem3.timeStamp = DateTime.Now; elem3.children.AddRange(new List <int> { 1 }); elem3.payload = "Fastest in the world"; db.insert(3, elem3); Console.WriteLine(); db.showDB(); "\n1) Fetch Value for key 3".title(); var val = db.getValueOfKey(3); val.showElement(); Console.WriteLine(); QueryEngine <int, DBElement <int, string> > qEngine = new QueryEngine <int, DBElement <int, string> >(db); "\n2) Fetch the children of key 1".title(); var children = qEngine.getChildrenOfKey(1); displayChildren(children); DBEngine <string, DBElement <string, List <string> > > db2 = new DBEngine <string, DBElement <string, List <string> > >(); "\n 3) Fetch the keys which starts with r in the below database with key/value pairs".title(); //Taking new database with string keys DBElement <string, List <string> > elem4 = new DBElement <string, List <string> >(); elem4.name = "Christ college"; elem4.descr = "College where the person studied"; elem4.timeStamp = DateTime.Now; elem4.children.AddRange(new List <string> { "rakesh" }); elem4.payload = new List <string> { "One", "Two", "Three", "Four" }; db2.insert("saahith", elem4); DBElement <string, List <string> > elem5 = new DBElement <string, List <string> >(); elem5.name = "PESIT college"; elem5.descr = "College where the person pursued undergraduation"; elem5.timeStamp = DateTime.Now.AddDays(-2); elem5.children.AddRange(new List <string> { "saahith" }); elem5.payload = new List <string> { "Five", "Six", "Seven", "Eight" }; db2.insert("rakesh", elem5); db2.showEnumerableDB(); WriteLine(); QueryEngine <string, DBElement <string, List <string> > > qEngine2 = new QueryEngine <string, DBElement <string, List <string> > >(db2); string pattern1 = @"(^r)"; var spKeys = qEngine2.getListStringKeyPattern(pattern1); displayStringKeys(spKeys); "\n4) Fetch keys with metadata pattern 'Country'".title(); string pattern = "Country"; var mdKeys = qEngine.getListMetaDataPattern(pattern); displayKeys(mdKeys); "\n5) Fetch keys which are created between two dates 29th sept 2015 and 15th oct 2015".title(); DateTime time1 = new DateTime(2015, 9, 29); DateTime time2 = new DateTime(2015, 10, 15); var tpKeys = qEngine.getListTimePattern(time1, time2); displayKeys(tpKeys); }
static void Main(string[] args) { "Testing DBEngine Package".title('=');; WriteLine(); "Test db of scalar elements".title(); WriteLine(); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.payload = "a payload"; DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord"); elem2.payload = "The Empire strikes back!"; var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot"); elem3.payload = "X-Wing fighter in swamp - Oh oh!"; if (verbose) { Write("\n --- Test DBElement<int,string> ---"); WriteLine(); elem1.showElement(); WriteLine(); elem2.showElement(); WriteLine(); elem3.showElement(); WriteLine(); /* ElementFormatter is not ready for prime time yet */ //Write(ElementFormatter.formatElement(elem1.showElement<int, string>(), false)); } Write("\n --- Test DBEngine<int,DBElement<int,string>> ---"); WriteLine(); int key = 0; Func <int> keyGen = () => { ++key; return(key); }; DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); bool p1 = db.insert(keyGen(), elem1); bool p2 = db.insert(keyGen(), elem2); bool p3 = db.insert(keyGen(), elem3); if (p1 && p2 && p3) { Write("\n all inserts succeeded"); } else { Write("\n at least one insert failed"); } db.showDB(); WriteLine(); "Test db of enumerable elements".title(); WriteLine(); DBElement <string, List <string> > newelem1 = new DBElement <string, List <string> >(); newelem1.name = "newelem1"; newelem1.descr = "test new type"; newelem1.payload = new List <string> { "one", "two", "three" }; DBElement <string, List <string> > newerelem1 = new DBElement <string, List <string> >(); newerelem1.name = "newerelem1"; newerelem1.descr = "better formatting"; newerelem1.payload = new List <string> { "alpha", "beta", "gamma" }; newerelem1.payload.Add("delta"); newerelem1.payload.Add("epsilon"); DBElement <string, List <string> > newerelem2 = new DBElement <string, List <string> >(); newerelem2.name = "newerelem2"; newerelem2.descr = "better formatting"; newerelem2.children.AddRange(new List <string> { "first", "second" }); newerelem2.payload = new List <string> { "a", "b", "c" }; newerelem2.payload.Add("d"); newerelem2.payload.Add("e"); if (verbose) { Write("\n --- Test DBElement<string,List<string>> ---"); WriteLine(); newelem1.showEnumerableElement(); WriteLine(); newerelem1.showEnumerableElement(); WriteLine(); newerelem2.showEnumerableElement(); WriteLine(); } Write("\n --- Test DBEngine<string,DBElement<string,List<string>>> ---"); int seed = 0; string skey = seed.ToString(); Func <string> skeyGen = () => { ++seed; skey = "string" + seed.ToString(); skey = skey.GetHashCode().ToString(); return(skey); }; DBEngine <string, DBElement <string, List <string> > > newdb = new DBEngine <string, DBElement <string, List <string> > >(); newdb.insert(skeyGen(), newelem1); newdb.insert(skeyGen(), newerelem1); newdb.insert(skeyGen(), newerelem2); newdb.showEnumerableDB(); Write("\n\n"); }
static void Main(string[] args) { "Testing ItemEditor Package".title('='); WriteLine(); DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.name = "Usain Bolt"; elem1.descr = "Athelte"; elem1.timeStamp = DateTime.Now; elem1.children.AddRange(new List <int> { 2 }); elem1.payload = "Fastest in the world"; db.insert(1, elem1); DBElement <int, string> elem2 = new DBElement <int, string>(); elem2.name = "Saina Nehwal"; elem2.descr = "Badminton Player"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <int> { 1 }); elem2.payload = "Famous badminton player"; db.insert(2, elem2); db.showDB(); WriteLine(); ItemEditor <int, DBElement <int, string> > iEditor = new ItemEditor <int, DBElement <int, string> >(db); "\n1) Editing metadata".title(); "\nBefore editing metadata for key 1".title(); db.showDB(); WriteLine(); "\nAfter editing metadata for key 1".title(); iEditor = new ItemEditor <int, DBElement <int, string> >(db); iEditor.editMetaData(1, "Sachin Tendulkar", "Cricket player"); //send the values to be edited to the editMetaData() function db.showDB(); WriteLine(); WriteLine(); "\n2) Adding children".title(); "\nBefore adding relationship(children) for key 1".title(); db.showDB(); WriteLine(); "\nAfter adding relationship(children) for Key 1".title(); iEditor.addrelationships(1, new List <int> { 3 }); //send a new list with children to be added to a key db.showDB(); WriteLine(); WriteLine(); "\n3) Deleting children".title(); "\nBefore deleting relationship(children) for key 1".title(); db.showDB(); WriteLine(); "\nAfter deleting relationship(children) to Key 1".title(); //send a new list with children to be deleted from a key iEditor.deleteRelationships(1, new List <int> { 3 }); db.showDB(); WriteLine(); WriteLine(); "\n4) Replacing value instance".title(); DBElement <int, string> elem = new DBElement <int, string>(); //create a new element for replacing value elem.name = "Messi"; elem.payload = "Plays for Argentina"; elem.descr = "Football player"; elem.children.AddRange(new List <int> { 2 }); elem.timeStamp = DateTime.Now; "\nBefore replacing the value instance for key 2".title(); db.showDB(); WriteLine(); "\nAfter replacing the value instance for key 2".title(); iEditor.replaceValueInstance(2, elem); //send value to be replaced for a key db.showDB(); WriteLine(); }