Пример #1
0
        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);
        }
Пример #2
0
        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();
        }