Beispiel #1
0
        public void showDBbyCategory(DBEngine1 <DBElement1 <int, string> > db)
        {
            List <int>        cats      = new List <int>();
            List <int>        foundKeys = new List <int>();
            IEnumerable <int> keys      = db.Keys();

            foreach (int key in keys)
            {
                DBElement1 <int, string> elem = new DBElement1 <int, string>();

                db.getValue(key, out elem);

                foreach (int cat in elem.category)
                {
                    if (cats.Contains(cat))                             // Skip for repeated categories
                    {
                        continue;
                    }
                    WriteLine("\nCategory = {0}", cat);
                    WriteLine("- - - - - - ");
                    queryByCategory(cat, db);                       // Querying DB by category
                    cats.Add(cat);
                }
            }
        }
Beispiel #2
0
        //helper function for showDBbyCategory
        public void queryByCategory(int category, DBEngine1 <DBElement1 <int, string> > db)
        {
            List <int>        foundKeys = new List <int>();
            IEnumerable <int> keys      = db.Keys();

            foreach (int key in keys)
            {
                DBElement1 <int, string> elem = new DBElement1 <int, string>();

                db.getValue(key, out elem);

                if (elem.category.Contains(category))
                {
                    foundKeys.Add(key);
                }
            }
            foreach (int key1 in foundKeys)
            {
                Console.WriteLine("Key={0}", key1);
                DBElement1 <int, string> elem = new DBElement1 <int, string>();
                db.getValue(key1, out elem);
                Console.WriteLine("Name: {0}", elem.name);                      // Printing DB contents grouped by category
                Console.WriteLine("Description ={0}", elem.descr);
                Console.WriteLine("timeStamp : {0}", elem.timeStamp);
                Console.Write("Children:");
                foreach (int child in elem.children)
                {
                    Console.Write("{0} ", child);
                }
                //WriteLine();
                Console.WriteLine("Payload : {0}", elem.payload);
                WriteLine();
            }
        }
Beispiel #3
0
        public string showElement(DBElement1 <int, string> elem)
        {
            StringBuilder accum = new StringBuilder();

            accum.Append(showMetaData(elem));
            if (elem.payload != null)
            {
                accum.Append(String.Format("\n  payload: {0}", elem.payload.ToString()));
            }
            return(accum.ToString());
        }
Beispiel #4
0
 public void show(DBEngine1 <Value> db)
 {
     foreach (int key in db.Keys())
     {
         Value value;
         db.getValue(key, out value);
         DBElement1 <int, string> elem = value as DBElement1 <int, string>;
         Write("\n\n  -- key = {0} --", key);
         Write(showElement(elem));
     }
 }
Beispiel #5
0
        public Bonus()
        {
            DBEngine1 <DBElement1 <int, string> > db = new DBEngine1 <DBElement1 <int, string> >();
            DBElement1 <int, string> elem            = new DBElement1 <int, string>();               //Populating DBEngine1

            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";
            elem.category.AddRange(new List <int> {
                1, 2, 3
            });
            db.insert(1, elem);
            DBElement1 <int, string> elem1 = new DBElement1 <int, string>();                        //Populating DBEngine1

            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 !";
            elem1.category.AddRange(new List <int> {
                1, 2, 5
            });
            db.insert(2, elem1);
            DBElement1 <int, string> elem2 = new DBElement1 <int, string>();                        //Populating DBEngine1

            elem2.name      = "Key/Value pair to be edited";                                        //object db
            elem2.descr     = "test element3";                                                      //for testing data int and string type.
            elem2.timeStamp = DateTime.Now;
            elem2.children.AddRange(new List <int> {
                4, 5, 6
            });
            elem2.payload = "EDIT !";
            elem2.category.AddRange(new List <int> {
            });
            db.insert(3, elem2);


            Console.WriteLine("DATABASE CONTENTS");
            Console.WriteLine("_ _ _ _ _ _ _ _ _ ");
            db.show(db);
            WriteLine("\n");

            //db.queryByCategory(1,db);
            Console.WriteLine("DATABASE BY CATEGORY");
            Console.WriteLine("_ _ _ _ _ _ _ _ _ _ _");
            db.showDBbyCategory(db);                        // Publishing DB
        }
Beispiel #6
0
        public string showMetaData(DBElement1 <int, string> elem)
        {
            StringBuilder accum = new StringBuilder();

            accum.Append(String.Format("\n  name: {0}", elem.name));
            accum.Append(String.Format("\n  desc: {0}", elem.descr));
            accum.Append(String.Format("\n  time: {0}", elem.timeStamp));
            if (elem.children.Count() > 0)
            {
                accum.Append(String.Format("\n  Children: "));
                bool first = true;
                foreach (int key in elem.children)
                {
                    if (first)
                    {
                        accum.Append(String.Format("{0}", key.ToString()));
                        first = false;
                    }
                    else
                    {
                        accum.Append(String.Format(", {0}", key.ToString()));
                    }
                }
            }
            if (elem.category.Count() > 0)
            {
                accum.Append(String.Format("\n  Category: "));
                bool first = true;
                foreach (int key in elem.category)
                {
                    if (first)
                    {
                        accum.Append(String.Format("{0}", key.ToString()));
                        first = false;
                    }
                    else
                    {
                        accum.Append(String.Format(", {0}", key.ToString()));
                    }
                }
            }
            return(accum.ToString());
        }