/// <summary type="void" dos="private">
 /// Обрабодчик нажатия на кнопку сохранить.
 /// </summary>
 private void SaveButton_Click(object sender, EventArgs e)
 {
     // Кнопка должна быть нажата лиш раз.
     saveButton.Clickable = false;
     // Заменяем пустое название на "Без названия".
     if (name.Text == "")
     {
         name.Text = "Без названия";
     }
     try
     {
         // Находим путь к базе данных.
         string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "links.db3");
         // Подключимся к бд.
         var db = new SQLiteConnection(dbPath);
         // Создадим таблицу.
         db.CreateTable <DBElem>();
         // Созддадим новый элемент и добавим новый элемент.
         DBElem linkDB = new DBElem(name.Text, link.Text, description.Text);
         db.Insert(linkDB);
         db.Dispose();
         // Завершим активити.
         this.Finish();
     }
     catch (Exception ex)
     {
         Toast.MakeText(this, ex.Message, ToastLength.Short).Show();
     }
     saveButton.Clickable = true;
 }
Exemple #2
0
        //----< Process request to Retrieve key's value >------------------------
        public Message ProcessGetValue(Message msg)
        {
            string keyS;

            parser.decodeValueRequest(msg, out keyS);
            bool success;

            try
            {
                int key = int.Parse(keyS);
                perfTimer.Start();

                DBElem elem = new DBElem();
                success = db.getValue(key, out elem);
                if (success)
                {
                    keyS = SerializeValue <int, string>(elem);
                }
                else
                {
                    keyS = "";
                }

                perfTimer.Stop();
                reqCount++;
                totalTime += perfTimer.ElapsedMicroseconds;
            } catch (Exception)
            {
                success = false;
            }

            Message result = maker.makeValueResult(msg, keyS);

            return(result);
        }
Exemple #3
0
        //----< perform query operations on DB and return results >--------------
        public string QueryOperations(string queryString)
        {
            string      res         = "";
            QueryEngine queryEngine = new QueryEngine();

            DBElem value = QueryEngine.queryValue <int, DBElem, string>(int.Parse(queryString), db);

            if (value != null)
            {
                res = value.ToXml();
            }
            return(res);
        }
Exemple #4
0
        //----< Process request to Add key >-------------------------------------
        public Message ProcessAddKey(Message msg)
        {
            Console.WriteLine("Received Request to Add Key/Value Pair");

            int    key; List <int> children = new List <int>();
            string keyS; List <string> childrenS;
            string name, descr, payload;

            parser.decodeAddRequest(msg, out keyS, out name, out descr, out payload, out childrenS);
            bool success;

            try
            {
                key = int.Parse(keyS);
                if (childrenS.Count() > 0)
                {
                    foreach (string child in childrenS)
                    {
                        children.Add(int.Parse(child));
                    }
                }

                perfTimer.Start();

                DBElem elem = new DBElem(name, descr);
                elem.children.AddRange(children);
                elem.payload = payload;
                success      = db.insert(key, elem);

                perfTimer.Stop();
                reqCount++;
                totalTime += perfTimer.ElapsedMicroseconds;
            } catch (Exception)
            {
                success = false;
            }

            if (success)
            {
                Console.WriteLine("Added Key/Value Pair");
            }
            else
            {
                Console.WriteLine("Add Operation Failed");
            }

            Message result = maker.makeAddResult(msg, success);

            return(result);
        }
Exemple #5
0
        //----< Process request to Edit key >------------------------------------
        public Message ProcessEditKey(Message msg)
        {
            int    key; List <int> children = new List <int>();
            string keyS; List <string> childrenS;
            string name, descr, payload;

            parser.decodeAddRequest(msg, out keyS, out name, out descr, out payload, out childrenS);

            key = int.Parse(keyS);
            if (childrenS.Count() > 0)
            {
                foreach (string child in childrenS)
                {
                    children.Add(int.Parse(child));
                }
            }

            perfTimer.Start();

            DBElem elem    = new DBElem();
            bool   success = db.getValue(key, out elem);

            perfTimer.Stop();
            reqCount++;
            totalTime += perfTimer.ElapsedMicroseconds;

            if (success)
            {
                elem.name      = name;
                elem.descr     = descr;
                elem.timeStamp = DateTime.Now;
                elem.children.AddRange(children);
                elem.payload = payload;
                Console.WriteLine("Edits saved");
            }
            else
            {
                Console.WriteLine("Edit Operation Failed. Key doesn't exist!");
            }

            Message result = maker.makeEditResult(msg, success);

            return(result);
        }
Exemple #6
0
        /// <summary type="void" dos="private">
        /// Обрабодчик нажатия на кнопку сохранить.
        /// </summary>
        private void SaveButton_Click(object sender, EventArgs e)
        {
            // Только одна кнопка может быть нажата.
            if (buttonFlag)
            {
                return;
            }

            buttonFlag = true;

            try
            {
                // Если текстовое поле имени пустое заменим его на "Без названия"
                if (name.Text == "")
                {
                    name.Text = "Без названия";
                }

                // Находим путь к базе данных.
                string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "links.db3");
                // Полключимся к базе данных.
                var db = new SQLiteConnection(dbPath);
                // Создадим базу данных.
                db.CreateTable <DBElem>();
                // Удалим эдемент.
                db.Delete(id, db.GetMapping <DBElem>());
                // Создадим новый элемент.
                DBElem linkDB = new DBElem(name.Text, link.Text, description.Text);
                // Вставим его в базу данных.
                db.Insert(linkDB);
                // Уничтожаем объект.
                db.Dispose();
                // Завершаем ативити.
                this.Finish();
            }
            catch (Exception ex)
            {
                Toast.MakeText(this, ex.Message, ToastLength.Short).Show();
            }

            buttonFlag = false;
        }