public static int GetCountNotesFromDB() { if (OfflineMode) { return(-1); } MyDataBase.ConnectToDB(); MyDataBase.ExecuteCommand("SELECT COUNT(idnote) FROM notes WHERE notes.iduser = "******";"); if (!MyDataBase.rdr.HasRows) { return(0); } int x = 0; while (MyDataBase.rdr.Read()) { x = Convert.ToInt32((long)MyDataBase.rdr[0]); } MyDataBase.rdr.Close(); MyDataBase.CloseConnectToDB(); return(x); }
public static bool Registration(string username, string password, DateTime birth, string email, byte[] avatar) { MyDataBase.ConnectToDB(); MyDataBase.ExecuteCommand("SELECT * FROM users WHERE users.username = '******' OR users.email = '" + email + "'"); if (MyDataBase.rdr.HasRows) { MessageBox.Show("This user already exist.");//Некрасиво тут содержать MessageBox, но всё же. return(false); } MyDataBase.rdr.Close(); MyDataBase.AddWithValue("@avatar", avatar); MyDataBase.ExecuteCommand( "INSERT INTO `users` (`username`, `userpass`, `email`, `avatar`, `datebirth`)" + "VALUES ('" + username + "', '" + password + "', '" + email + "', @avatar, '" + birth.Year + "-" + birth.Month + "-" + birth.Day + "');"); MyDataBase.rdr.Close(); MyDataBase.CloseConnectToDB(); return(true); }
private void mainwindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (Evennote.OfflineMode) { return; } if (Evennote.user != null && Evennote.user.online == true) { MyDataBase.ConnectToDB(); MyDataBase.SetOfflineUser(Evennote.user.id); MyDataBase.CloseConnectToDB(); } }
public static bool Authorization(string username, string password) { //Подключение к своей базе данных MyDataBase.ConnectToDB(); //Проверяем совпадают ли имя и пароли MyDataBase.ExecuteCommand("SELECT * FROM users WHERE users.username = '******' AND users.userpass = '******'"); //Проверка, нашли ли мы вообще такого пользователя в БД if (MyDataBase.rdr.HasRows == false) { //Надо сделать throwException //ай, потом.. MyDataBase.rdr.Close(); MyDataBase.CloseConnectToDB(); return(false); } //Читаем данные while (MyDataBase.rdr.Read()) { MySql.Data.Types.MySqlDateTime x = (MySql.Data.Types.MySqlDateTime)MyDataBase.rdr[5]; DateTime tempDate = new DateTime(x.Year, x.Month, x.Day); //Сохраняем данные о себе user = new User(Convert.ToInt32(MyDataBase.rdr[0].ToString()), MyDataBase.rdr[1].ToString(), MyDataBase.rdr[3].ToString(), MyDataBase.rdr[4] as byte[], tempDate); } contextUser = user; MyDataBase.rdr.Close(); //Пишем что мы онлайн в БД MyDataBase.SetOnlineUser(user.id); //Отключаемся от БД MyDataBase.CloseConnectToDB(); return(true); }
private void logout_btn_Click(object sender, RoutedEventArgs e) { Notebook.notebook.RemoveRange(0, Notebook.notebook.Count); if (Evennote.OfflineMode) { (Application.Current.MainWindow as MainWindow).ChangePage("pages/login_page.xaml"); System.IO.File.Delete(Evennote.ConfigFile); Evennote.OfflineMode = false; return; } Evennote.user.online = false; (Application.Current.MainWindow as MainWindow).ChangePage("pages/login_page.xaml"); Evennote.AutoLogin = false; System.IO.File.Delete(Evennote.ConfigFile); MyDataBase.ConnectToDB(); MyDataBase.ChangeOnlineStatus(Evennote.user.id); MyDataBase.CloseConnectToDB(); Evennote.user = null; }
//Сравнивает даты локальной заметки и сохраненной на сервере public void RefreshNoteState() { if (Evennote.OfflineMode == true) { Backuped = -2; return; } MyDataBase.ConnectToDB(); MyDataBase.ExecuteCommand("SELECT dateChanged FROM notes WHERE iduser = "******" AND title = '" + Title + "';"); if (!MyDataBase.rdr.HasRows) { Backuped = -2; return; } while (MyDataBase.rdr.Read()) { DateTime fromDB = new DateTime((long)MyDataBase.rdr[0]); if (DateTime.Compare(DateChanged, fromDB) > 0)//Когда на бд старая заметка, а у нас новая { Backuped = -1; } else if (DateTime.Compare(DateChanged, fromDB) < 0)//Когда на бд новая заметка, а у нас старая { Backuped = 1; } else { Backuped = 0; } } MyDataBase.CloseConnectToDB(); }
public static User GetUserData(string username) { User temp = null; //Подключение к своей базе данных MyDataBase.ConnectToDB(); MyDataBase.ExecuteCommand("SELECT * FROM users WHERE users.username = "******"'" + username + "'"); if (MyDataBase.rdr.HasRows == false) { return(null); } while (MyDataBase.rdr.Read()) { MySql.Data.Types.MySqlDateTime x = (MySql.Data.Types.MySqlDateTime)MyDataBase.rdr[5]; DateTime tempDate = new DateTime(x.Year, x.Month, x.Day); //Сохраняем данные о себе temp = new User(Convert.ToInt32(MyDataBase.rdr[0].ToString()), MyDataBase.rdr[1].ToString(), MyDataBase.rdr[3].ToString(), MyDataBase.rdr[4] as byte[], tempDate); if (MyDataBase.rdr[6].ToString().Equals("True")) { temp.online = true; } } //Отключаемся от БД MyDataBase.rdr.Close(); MyDataBase.CloseConnectToDB(); return(temp); }
public static void SyncNotes() { if (OfflineMode) { return; } //Удаление заметок из бд и из системы. MyDataBase.ConnectToDB(); string[] notes = Directory.GetFiles(DeleteDirectory); for (int i = 0; i < notes.Length; i++) { MyDataBase.ExecuteCommand("DELETE FROM `notes` WHERE `iduser`='" + Evennote.user.id + "' AND `title`='" + notes[i].Split('\\').Last().Split('.').First() + "';"); //Разбиваем путь по слэшам, берем имя файла с расширением. Разюиваем имя файла и вытягиваем имя заметки. File.Delete(notes[i]); MyDataBase.rdr.Close(); } MyDataBase.ExecuteCommand("SELECT idnote, title, note, dateCreate, dateChanged FROM notes WHERE notes.iduser = "******";"); //написать проверки о наличии данных int idnote = -1; List <Note> fromDB = new List <Note>(); while (MyDataBase.rdr.Read()) { Note buf = new Note(); using (MemoryStream mem = new MemoryStream((byte[])MyDataBase.rdr[2])) { TextRange textRange = new TextRange( buf.Text.ContentStart, buf.Text.ContentEnd); textRange.Load(mem, DataFormats.XamlPackage); buf.Id = (int)MyDataBase.rdr[0]; buf.Title = (string)MyDataBase.rdr[1]; buf.DateCreate = new DateTime((long)MyDataBase.rdr[3]); buf.DateChanged = new DateTime((long)MyDataBase.rdr[4]); fromDB.Add(buf); } } MyDataBase.rdr.Close(); Notebook.notebook.ForEach(delegate(Note x) //коллекция локальных заметок { bool flag = true; foreach (Note y in fromDB) //коллекция заметок из бд { if (y.Title == x.Title) { flag = false; if (DateTime.Compare(x.DateChanged, y.DateChanged) < 0) { //Когда на бд новая заметка, а у нас старая x.DateChanged = y.DateChanged; x.DateCreate = y.DateCreate; x.Text = y.Text; x.SaveToFile(String.Format("{0}{1}.note", Evennote.path, x.Title)); File.SetCreationTime(String.Format("{0}{1}.note", Evennote.path, x.Title), x.DateCreate); File.SetLastWriteTime(String.Format("{0}{1}.note", Evennote.path, x.Title), x.DateChanged); break; } else if (DateTime.Compare(x.DateChanged, y.DateChanged) > 0) { //Когда на бд старая заметка, а у нас новая idnote = y.Id; using (MemoryStream mem = new MemoryStream()) { TextRange textRange = new TextRange( x.Text.ContentStart, x.Text.ContentEnd); textRange.Save(mem, DataFormats.XamlPackage); MyDataBase.AddWithValue("@notefile", mem.ToArray()); MyDataBase.ExecuteCommand("UPDATE notes SET note = @notefile, dateChanged = " + x.DateChanged.Ticks + " WHERE notes.idnote = " + idnote); } break; } } } //Добавляем новую заметку в БД if (flag) { using (MemoryStream mem = new MemoryStream()) { TextRange textRange = new TextRange( x.Text.ContentStart, x.Text.ContentEnd); textRange.Save(mem, DataFormats.XamlPackage); DateTime cR = x.DateCreate; DateTime cH = x.DateChanged; MyDataBase.AddWithValue("@notefile", mem.ToArray()); MyDataBase.ExecuteCommand("INSERT INTO `notes` (`iduser`, `title`, `note`, `dateCreate`, `dateChanged`) VALUES (" + user.id + ", '" + x.Title + "', @noteFile, " + cR.Ticks + ", " + cH.Ticks + ");"); } } }); //Когда у нас нет локальных заметок, и есть заметки в БД. foreach (Note y in fromDB) //коллекция заметок из бд { bool flag = true; Notebook.notebook.ForEach(delegate(Note x) //коллекция локальных заметок { if (y.Title == x.Title) { flag = false; } }); if (flag) { y.SaveToFile(String.Format("{0}{1}.note", Evennote.path, y.Title)); Notebook.notebook.Add(y); File.SetCreationTime(String.Format("{0}{1}.note", Evennote.path, y.Title), y.DateCreate); File.SetLastWriteTime(String.Format("{0}{1}.note", Evennote.path, y.Title), y.DateChanged); } } MyDataBase.rdr.Close(); MyDataBase.CloseConnectToDB(); (((Application.Current.MainWindow as MainWindow).mainframe.Content as menu_page).frame.Content as notes_page).SyncListView(); }