/// <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; }
//----< 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); }
//----< 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); }
//----< 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); }
//----< 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); }
/// <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; }