public Action<Message>insert(DBEngine<int,DBElement<int,string>>db) { Action<Message> Insert = (msg) => { XDocument doc = XDocument.Parse(msg.content); int key = int.Parse(doc.Descendants("Msg").Descendants("Data").Descendants("key").ElementAt(0).Value); DBElement<int, string> elem = new DBElement<int, string>(); elem.name = doc.Descendants("Msg").Descendants("Data").Descendants("value").Descendants("name").ElementAt(0).Value; elem.descr = doc.Descendants("Msg").Descendants("Data").Descendants("value").Descendants("descr").ElementAt(0).Value; elem.timeStamp = (DateTime)doc.Descendants("Msg").Descendants("Data").Descendants("value").Descendants("timestamp").ElementAt(0); IEnumerable<XElement> children = doc.Descendants("Msg").Descendants("Data").Descendants("value").Descendants("children").Descendants("key"); foreach (var child in children) elem.children.Add(int.Parse(child.Value)); IEnumerable<XElement> items = doc.Descendants("Msg").Descendants("Data").Descendants("value").Descendants("payload"); if (items.Count() == 1) elem.payload = items.ElementAt(0).Value; if (!db.insert(key, elem)) msg.content = "Insert fail"; else { msg.content = "Insert success"; Console.Write("\n\n --- insert a DBElement<int,string>---"); elem.showElement(); } Utilities.swapUrls(ref msg); }; return Insert; }
/// <summary> /// show enumerable element. /// </summary> /// <param name="enumElement"></param> public static string showEnumerableElement(this DBElement <string, List <string> > enumElement) { string result = enumElement.showElement <string, List <string>, string>(); Console.Write(result); return(result); }
static void Main(string[] args) { DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); DBEngine <string, DBElement <string, List <string> > > dbString = new DBEngine <string, DBElement <string, List <string> > >(); ItemFactory <int, string> itemFactory = new ItemFactory <int, string>(); DBElement <int, string> elem = itemFactory.Create(); elem.name = "element"; elem.descr = "test element"; elem.timeStamp = DateTime.Now.AddDays(-4); elem.children.AddRange(new List <int> { 1, 2, 3 }); elem.payload = "elem's payload"; WriteLine("\n Item to be inserted.. \n"); elem.showElement(); db.insert(1, elem); db.showDB(); WriteLine(); WriteLine("\n Inserting second element into DB :"); DBElement <int, string> elem2 = new DBElement <int, string>(); elem2.name = "element2"; elem2.descr = "test element2"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <int> { 1, 2, 3, 4 }); elem2.payload = "elem2's payload"; WriteLine("\nItem to be inserted.. \n"); elem2.showElement(); db.insert(2, elem2); WriteLine("\n\n DB after insertion:"); db.showDB(); //Inserting element 3 WriteLine("\n Inserting third element into DB :"); DBElement <int, string> elem3 = new DBElement <int, string>(); elem3.name = "element3"; elem3.descr = "test element3"; elem3.timeStamp = DateTime.Now.AddDays(-5); elem3.children.AddRange(new List <int> { 5, 8, 10 }); elem3.payload = "elem3's payload"; WriteLine("\nItem to be inserted.. \n"); elem3.showElement(); db.insert(3, elem3); WriteLine("\n\n DB after insertion:"); db.showDB(); QueryEngineTest engineTest = new QueryEngineTest(); engineTest.test1(); engineTest.test2(); engineTest.test3(); }
static void Main(string[] args) { DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); ItemFactory <int, string> itemFactory = new ItemFactory <int, string>(); "Demonstrating Requirement #2".title(); DBElement <int, string> elem = itemFactory.Create(); elem.name = "element"; elem.descr = "test element"; elem.timeStamp = DateTime.Now.AddDays(-4); elem.children.AddRange(new List <int> { 1, 2, 3 }); elem.payload = "elem's payload"; WriteLine("\n Item to be inserted.. \n"); elem.showElement(); db.insert(1, elem); db.showDB(); WriteLine(); WriteLine("\n Inserting second element into DB :"); DBElement <int, string> elem2 = new DBElement <int, string>(); elem2.name = "element2"; elem2.descr = "test element2"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <int> { 1, 2, 3, 4 }); elem2.payload = "elem2's payload"; WriteLine("\nItem to be inserted.. \n"); elem2.showElement(); db.insert(2, elem2); WriteLine("\n\n DB after insertion:"); db.showDB(); "Adding relationship :".title('.'); WriteLine("\n Elements in DB :"); db.showDB(); int key = 2; var children = new List <int> { 5, 6 }; WriteLine("\n Add children for key {0} : ", key); foreach (var child in children) { Write("{0}, ", child); } WriteLine(); db.addRelationship(key, children); WriteLine("\n\n DB after the change :"); db.showDB(); WriteLine(); "".demarcation(); ItemEditorTest editorTest = new ItemEditorTest(); editorTest.test(); }
static void Main(string[] args) { "Testing DBElement Package".title('='); WriteLine(); Write("\n --- Test DBElement<int,string> ---"); WriteLine(); DBElement <int, string> elem1 = new DBElement <int, string>(); Write(elem1.showElement <int, string>()); WriteLine(); DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord"); elem2.payload = "The Empire strikes back!"; Write(elem2.showElement <int, string>()); WriteLine(); var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot"); elem3.children = new List <int> { 1, 2, 7 }; elem3.payload = "X-Wing fighter in swamp - Oh oh!"; Write(elem3.showElement <int, string>()); WriteLine(); Write("\n --- Test DBElement<string,List<string>> ---"); 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" }; Write(newelem1.showElement <string, List <string>, string>()); WriteLine(); DBElement <string, List <string> > newerelem1 = new DBElement <string, List <string> >(); newerelem1.name = "newerelem1"; newerelem1.descr = "same stuff"; newerelem1.children.Add("first_key"); newerelem1.children.Add("second_key"); newerelem1.payload = new List <string> { "alpha", "beta", "gamma" }; newerelem1.payload.AddRange(new[] { "delta", "epsilon" }); Write(newerelem1.showElement <string, List <string>, string>()); WriteLine(); Write("\n\n"); }
//----< write simple db elements out to Console >------------------ public static void show <Key, Value, Data>(this DBEngine <Key, Value> db) { foreach (Key key in db.Keys()) { Value value; db.getValue(key, out value); DBElement <Key, Data> elem = value as DBElement <Key, Data>; Write("\n\n -- key = {0} --", key); Write(elem.showElement()); } }
//----< write simple db elements out to Console >------------------ public static void showDictionaryData <Key, Value, Data>(this Dictionary <Key, Value> db) { foreach (Key key in db.Keys) { Value value; value = db[key]; DBElement <int, List <string> > elem = value as DBElement <int, List <string> >; Write("\n\n -- key = {0} --", key); Write(elem.showElement()); } }
//----< write enumerable db elements out to Console >-------------- public static void show <Key, Value, Data, T>(this DBFactory <Key, Value> db) where Data : IEnumerable <T> { foreach (Key key in db.Keys()) { Value value; db.getValue(key, out value); DBElement <Key, Data> elem = value as DBElement <Key, Data>; Write("\n\n -- key = {0} --", key); Write(elem.showElement <Key, Data, T>()); } }
static void Main(string[] args) { DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); ItemFactory <int, string> itemFactory = new ItemFactory <int, string>(); "Demonstrating Requirement #2".title(); DBElement <int, string> elem = itemFactory.Create(); elem.name = "element"; elem.descr = "test element"; elem.timeStamp = DateTime.Now.AddDays(-4); elem.children.AddRange(new List <int> { 1, 2, 3 }); elem.payload = "elem's payload"; WriteLine("\n Item to be inserted.. \n"); elem.showElement(); db.insert(1, elem); db.showDB(); WriteLine("\n Inserting second element into DB :"); DBElement <int, string> elem2 = new DBElement <int, string>(); elem2.name = "element2"; elem2.descr = "test element2"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <int> { 1, 2, 3, 4 }); elem2.payload = "elem2's payload"; WriteLine("\nItem to be inserted.. \n"); elem2.showElement(); db.insert(2, elem2); WriteLine("\n\n DB after insertion:"); db.showDB(); WriteLine("\n\n DB after insertion:"); db.showDB(); var dict = new Dictionary <int, DBElement <int, string> >(); var keys = db.searchForTimeStamp(DateTime.Now.AddDays(-6), DateTime.Now.AddDays(-3)); Console.WriteLine("\nRunning a query on database..\n"); Console.WriteLine("\n\nThe result are the following keys:\n\n"); foreach (var item in keys) { dynamic result = db.searchValue(item); Console.Write("{0}, ", item); dict.Add(item, result); } DBFactory <int, DBElement <int, string> > dbFactory = new DBFactory <int, DBElement <int, string> >(dict); "Immutable database:".title('.'); Console.WriteLine("\n\nImmutable database is of type DBFactory, which is immutable (Found in DBFactory.cs)."); }
//----< write simple db elements out to Console >------------------ public static void show <Key, Value, Data>(this DBEngine <Key, Value> db) { "Displaying DB contents :".title('_'); foreach (Key key in db.Keys()) { Value value; db.getValue(key, out value); DBElement <Key, Data> elem = value as DBElement <Key, Data>; Write("\n\n -- key = {0} --", key); Write(elem.showElement()); Write("\n -- key = {0} --", key); } "".demarcation(); }
private void test() { DBEngine <int, DBElement <int, string> > db = new DBEngine <int, DBElement <int, string> >(); ItemFactory <int, string> itemFactory = new ItemFactory <int, string>(); int key = 0; //-----------Modify Metadata-------------------------- "Modify metadata".title('.'); WriteLine("\n Elements in DB :"); db.showDB(); key = 2; string name = "Nitish"; string description = "MS in CE"; WriteLine("\n\n\n New Details for metadata of key {0} :", key); WriteLine("\n Name : {0}", name); WriteLine("\n Description : {0}", description); WriteLine(); db.modifyMetadata(key, name, description); WriteLine("\n\n DB after the change :"); db.showDB(); WriteLine(); "".demarcation(); //-----------Modify Metadata-------------------------- //-------------------Replace Value instance----------------------- "Replace value instance".title('.'); WriteLine("\n\n Elements in DB :"); DBElement <int, string> elem = itemFactory.Create(); db.showDB(); key = 2; //DBElement<int, string> elem = new DBElement<int, string>(); elem.name = "new element"; elem.descr = "new test element"; elem.timeStamp = DateTime.Now; elem.children.AddRange(new List <int> { 7, 8, 9 }); elem.payload = "new elem's payload"; WriteLine("\n\n New instance for replacement for key {0}:\n", key); elem.showElement(); WriteLine("\n\n Replace instance of a key :"); db.replaceKeyInstance(key, elem); WriteLine("\n\n DB after the change :"); db.showDB(); WriteLine(); "".demarcation(); //-------------------Replace Value instance----------------------- }
//----< write enumerable db elements out to Console >-------------- public static string show <Key, Value, Data, T>(this DBEngine <Key, Value> db) where Data : IEnumerable <T> { StringBuilder displayString = new StringBuilder(); foreach (Key key in db.Keys()) { Value value; db.getValue(key, out value); DBElement <Key, Data> elem = value as DBElement <Key, Data>; displayString.Append("\n\n -- key = " + key + " --"); displayString.Append(elem.showElement <Key, Data, T>()); } return(displayString.ToString()); }
private void test2() { Write("\n --- Test DBElement<string,List<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.showElement <string, List <string>, 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.showElement <string, List <string>, string>()); 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); }; int key = 0; Func <int> keyGen = () => { ++key; return(key); }; DBEngine <string, DBElement <string, List <string> > > newdb = new DBEngine <string, DBElement <string, List <string> > >(); newdb.insert(skeyGen(), newerelem1); newdb.insert(skeyGen(), newerelem2); newdb.show <string, DBElement <string, List <string> >, List <string>, string>(); WriteLine(); }
static void Main(string[] args) { DBEngine <string, DBElement <string, List <string> > > db = new DBEngine <string, DBElement <string, List <string> > >(); ItemFactory <int, string> itemFactory = new ItemFactory <int, string>(); "Demonstrating Requirement #2".title(); DBElement <string, List <string> > elem = new DBElement <string, List <string> >(); elem.name = "element"; elem.descr = "test element"; elem.timeStamp = DateTime.Now.AddDays(-4); elem.children.AddRange(new List <string> { "1", "2", "3 " }); elem.payload = new List <string> { "elem's payload" }; WriteLine("\n Item to be inserted.. \n"); elem.showEnumerableElement(); db.insert("1", elem); db.showEnumerableDB(); WriteLine(); WriteLine("\n Inserting second element into DB :"); DBElement <string, List <string> > elem2 = new DBElement <string, List <string> >(); elem2.name = "element2"; elem2.descr = "test element2"; elem2.timeStamp = DateTime.Now; elem2.children.AddRange(new List <string> { "1", "2", "3", "4" }); elem2.payload = new List <string> { "elem's payload" }; WriteLine("\nItem to be inserted.. \n"); elem2.showElement(); db.insert("2", elem2); WriteLine("\n\n DB after insertion:"); db.showEnumerableDB(); "Persisting the database to XML:".title('_'); db.toXml(); "Augumenting database from XML".title('_'); db.restoreDatabase(); db.showEnumerableDB(); }
private void test1() { Write("\n --- Test DBElement<int,string> ---"); DBElement <int, string> elem1 = new DBElement <int, string>(); elem1.payload = "a payload"; Write(elem1.showElement <int, string>()); WriteLine(); DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord"); elem2.payload = "The Empire strikes back!"; Write(elem2.showElement <int, string>()); WriteLine(); var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot"); elem3.children.AddRange(new List <int> { 1, 5, 23 }); elem3.payload = "X-Wing fighter in swamp - Oh oh!"; Write(elem3.showElement <int, string>()); 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.show <int, DBElement <int, string>, string>(); WriteLine(); }
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"; elem1.children = new List <int> { 1, 2, 3, 4 }; Write(elem1.showMetaData <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(); Program p1 = new Program(); p1.testDBlement(); p1.testDBElementenurmableData(); 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(), newerelem1); newdb.insert(skeyGen(), newerelem2); newdb.show <string, DBElement <string, List <string> >, List <string>, string>(); WriteLine(); "testing edits".title(); db.show <int, DBElement <int, string>, string>(); DBElement <int, string> editElement = new DBElement <int, string>(); db.getValue(1, out editElement); editElement.showElement <int, string>(); editElement.name = "editedName"; editElement.descr = "editedDescription"; db.show <int, DBElement <int, string>, string>(); Write("\n\n"); }
public void testDBElementenurmableData() { 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.showElement <string, List <string> >()); WriteLine(); Write("\n --- Test DBElement<string,List<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.showElement <string, List <string>, 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.showElement <string, List <string>, string>()); WriteLine(); }
/// <summary> /// show element which has key as integer and element as ListOfString. /// </summary> /// <param name="element"></param> public static void showElement(this DBElement <int, ListOfStrings> element) { Console.Write(element.showElement <int, ListOfStrings>()); }
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"); }
public static void showEnumerableElement(this DBElement <string, List <string> > enumElement) { Console.Write(enumElement.showElement <string, List <string>, string>()); }
public static void showElement(this DBElement <int, string> element) { Console.Write(element.showElement <int, string>()); }
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); }
static void Main(string[] args) { "Testing Payload Wrapper".title('='); WriteLine(); ListOfStrings los = new ListOfStrings(); los.theWrappedData.AddRange(new List <string> { "one", "two", "three" }); "showing List of strings:".title(); foreach (string item in los.theWrappedData) { Write("\n {0}", item); } WriteLine(); "Output from PayloadWrapper.ToString()".title(); Write("\n{0}", los.ToString()); //WriteLine(); "output from PayloadWrapper.ToXml()".title(); Write("\n{0}", los.ToXml()); WriteLine(); "output from elem.showElement<string, ListOfStrings>()".title(); DBElement <string, ListOfStrings> elem = new DBElement <string, ListOfStrings>(); elem.name = "test element"; elem.descr = "created to test PayloadWrapper"; elem.payload = new ListOfStrings(); elem.payload.theWrappedData = new List <string> { "alpha", "beta", "gamma", "delta", "epsilon" }; Write(elem.showElement <string, ListOfStrings>()); ///////////////////////////////////////////////////////////////////// // The sequence of statements below should be turned into an // extension method: static public void clone(this List<string>) // "test cloning elem".title('='); WriteLine(); DBElement <string, ListOfStrings> cloned = new DBElement <string, ListOfStrings>(); cloned.name = String.Copy(elem.name); cloned.descr = String.Copy(elem.descr); cloned.timeStamp = DateTime.Parse(elem.timeStamp.ToString()); cloned.children = new List <string>(); cloned.children.AddRange(elem.children); cloned.payload = elem.payload.clone() as ListOfStrings; "output from elem.showElement<string, ListOfStrings>()".title(); Write(elem.showElement <string, ListOfStrings>()); "output from cloned.showElement<string, ListOfStrings>()".title(); Write(cloned.showElement <string, ListOfStrings>()); //"Hashcodes are not reliable object identifiers".title(); //Write(string.Format("\n hashcode of elem = {0}", elem.GetHashCode())); //Write(string.Format("\n hashcode of elem.name = {0}", elem.name.GetHashCode())); //Write(string.Format("\n hashcode of elem.descr = {0}", elem.descr.GetHashCode())); //Write(string.Format("\n hashcode of elem.payload = {0}", elem.payload.GetHashCode())); //WriteLine(); //Write(string.Format("\n hashcode of cloned = {0}", cloned.GetHashCode())); //Write(string.Format("\n hashcode of cloned.name = {0}", cloned.name.GetHashCode())); //Write(string.Format("\n hashcode of cloned.descr = {0}", cloned.descr.GetHashCode())); //Write(string.Format("\n hashcode of cloned.payload = {0}", cloned.payload.GetHashCode())); //WriteLine(); "testing for equality immediately after cloning".title(); showEquality(cloned.name, elem.name, "cloned.name vs. elem.name"); showEquality(cloned.descr, elem.descr, "cloned.descr vs. elem.descr"); showDateTimeEquality(cloned.timeStamp, elem.timeStamp, "cloned.timeStamp vs. elem.timeStamp"); showListEquality(cloned.children, elem.children, "cloned.children vs. elem.children"); showListEquality <string>(cloned.payload.theWrappedData, elem.payload.theWrappedData, "cloned.payload vs. elem.payload"); WriteLine(); "modifying clone's properties".title(); WriteLine(); cloned.name = cloned.name + " modified"; cloned.descr = cloned.descr + " modified"; cloned.timeStamp = DateTime.Today; cloned.children.AddRange(new List <string> { "key11", "key13" }); cloned.payload.theWrappedData.AddRange(new List <string> { "zeta", "eta" }); "output from elem.showElement<string, ListOfStrings>()".title(); Write(elem.showElement <string, ListOfStrings>()); "output from cloned.showElement<string, ListOfStrings>()".title(); Write(cloned.showElement <string, ListOfStrings>()); "Testing equality after modifying clone's values".title(); showEquality(cloned.name, elem.name, "cloned.name vs. elem.name"); showEquality(cloned.descr, elem.descr, "cloned.descr vs. elem.descr"); showDateTimeEquality(cloned.timeStamp, elem.timeStamp, "cloned.timeStamp vs. elem.timeStamp"); showListEquality(cloned.children, elem.children, "cloned.children vs. elem.children"); showListEquality <string>(cloned.payload.theWrappedData, elem.payload.theWrappedData, "cloned.payload vs. elem.payload"); Write("\n\n"); }
public static string showEnumerableElement(this DBElement <string, List <string> > enumElement) { return(enumElement.showElement <string, List <string>, string>()); }
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.showElement <int, string>()); WriteLine(); DBElement <int, string> elem2 = new DBElement <int, string>("Darth Vader", "Evil Overlord"); elem2.payload = "The Empire strikes back!"; Write(elem2.showElement <int, string>()); WriteLine(); var elem3 = new DBElement <int, string>("Luke Skywalker", "Young HotShot"); elem3.children.AddRange(new List <int> { 1, 5, 23 }); elem3.payload = "X-Wing fighter in swamp - Oh oh!"; Write(elem3.showElement <int, string>()); 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.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.payload = new List <string> { "one", "two", "three" }; Write(newelem1.showElement <string, List <string> >()); WriteLine(); Write("\n --- Test DBElement<string,List<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.showElement <string, List <string>, 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.showElement <string, List <string>, string>()); 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(), newerelem1); newdb.insert(skeyGen(), newerelem2); newdb.show <string, DBElement <string, List <string> >, List <string>, string>(); WriteLine(); "testing edits".title(); db.show <int, DBElement <int, string>, string>(); DBElement <int, string> editElement = new DBElement <int, string>(); db.getValue(1, out editElement); editElement.showElement <int, string>(); editElement.name = "editedName"; editElement.descr = "editedDescription"; db.show <int, DBElement <int, string>, string>(); Write("\n\n"); }