public void persistdb <Key, Value, Data>(DBEngine <Key, Value> db) { XDocument xml = new XDocument(); xml.Declaration = new XDeclaration("1.0", "utf-8", "yes"); XComment comment = new XComment("NoSQL Database"); //title for XML xml.Add(comment); XElement NoSQLelem = new XElement("NoSQLDB_ELEMENTS"); XElement type = new XElement("numbers", typeof(Key)); XElement payload = new XElement("name", typeof(Data)); xml.Add(NoSQLelem); NoSQLelem.Add(type); NoSQLelem.Add(payload); foreach (Key k1 in db.Keys()) { XElement tags = new XElement("open_close"); XElement key = new XElement("new_Key", k1); //tag for new keys generated tags.Add(key); Value value1; db.getValue(k1, out value1); DBElement <Key, Data> element = value1 as DBElement <Key, Data>; WriteLine(element.showElement()); XElement dbelement = persistdbelement <Key, Data>(element); tags.Add(dbelement); NoSQLelem.Add(tags); xml.Save("XML_FILE_PROJECT4.xml"); //XML file name } }
{ // Function to perform addition of relationships public static bool addRelations <Key, Value, Data>(this DBEngine <Key, Value> dbedit, Key key1, Key key2) { Value val1, val2; bool key1_present = dbedit.getValue(key1, out val1); // check if key1 is present if (key1_present) { bool key2_present = dbedit.getValue(key2, out val2); // check if key2 is present if (key2_present) { DBElement <Key, Data> element = val1 as DBElement <Key, Data>; element.children.Add(key1); } } return(true); }
//----< 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()); } }
// function to perform removal of relationships public static bool removeRelation <Key, Value, Data>(this DBEngine <Key, Value> dbedit, Key key1, Key key2) { Value value; if (dbedit.getValue(key1, out value)) { DBElement <Key, Data> elem = value as DBElement <Key, Data>; if (elem.children.Contains(key2)) { elem.children.Remove(key2); } } return(true); }
// Function to perform editing of name in metedata public static bool editName <Key, Value, Data>(this DBEngine <Key, Value> dbedit, Key key1, string new_name) { Value value; if (dbedit.getValue(key1, out value)) { DBElement <Key, Data> elem = value as DBElement <Key, Data>; elem.name = new_name; return(true); } else { return(false); } }
// function to edit instances public static bool editInstance <Key, Value, Data>(this DBEngine <Key, Value> dbedit, Key key1, Data new_instance) { Value value; if (dbedit.getValue(key1, out value)) { DBElement <Key, Data> elem = value as DBElement <Key, Data>; elem.payload = new_instance; return(true); } else { return(false); } }
public Value queryvalue <Key, Value, Data>(DBEngine <Key, Value> db, Key key) { Value getqueryvalue; bool key_present = db.getValue(key, out getqueryvalue); if (key_present) // check if key is present { return(getqueryvalue); //if present return value } else { Console.WriteLine("key not present"); // else error message } return(default(Value)); }
public List <key> querychildren <key, value, Data>(DBEngine <key, value> db, key Key) { value getqueryvalue; bool key_present = db.getValue(Key, out getqueryvalue); // check if key present DBElement <key, Data> temp = getqueryvalue as DBElement <key, Data>; // create new element to store value if (key_present) { return(temp.children); } else { Console.WriteLine("invalid key"); // if key not present error message } return(null); }