private void Button_Click_2(object sender, RoutedEventArgs e)
 {
     using (PasswordDatabase db = new PasswordDatabase())
     {
         DataGrid.ItemsSource = (from account in db.Accounts
                                 where account.UserId == MainWindow.currentUser.Id
                                 group account by new { account.Login, account.Password } into c
                                 orderby c.Count() descending
                                 select new { c.Key.Login, c.Key.Password, Count = c.Count() }).ToList();
     }
 }
        private void fillData(PasswordDatabase db = null)         // ф-я отображения данных
        {
            bool toDispose = false;

            if (db == null)
            {
                db        = new PasswordDatabase();
                toDispose = true;
            }

            DataGrid.ItemsSource = db.Accounts.Where(a => a.UserId == currentUser.Id).ToList();

            if (toDispose)
            {
                db.Dispose();
            }
        }
        private void Remove_Click(object sender, RoutedEventArgs e)         // кнопка удаления
        {
            if (DataGrid.SelectedItems.Count <= 0)
            {
                return;
            }

            if (MessageBox.Show("Confirm removal", "Confirmation", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
            {
                using (PasswordDatabase db = new PasswordDatabase())
                {
                    Account account = DataGrid.SelectedItem as Account;
                    db.Accounts.Remove(db.Accounts.Where(a => a.Id == account.Id).FirstOrDefault());
                    db.SaveChanges();
                    fillData(db);
                }
            }
        }
예제 #4
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // проверка на заполненность полей
            if (!string.IsNullOrWhiteSpace(loginTxtbox.Text) && !string.IsNullOrWhiteSpace(passwordTxtbox.Password))
            {
                using (PasswordDatabase db = new PasswordDatabase())
                {
                    // ищем юзера в базе по логину
                    User user = db.Users.FirstOrDefault(u => u.Login.ToLower() == loginTxtbox.Text.ToLower());
                    if (user == null)                    // если не находим, то предлагаем зарегистрировать
                    {
                        if (MessageBox.Show("User not found.\nDo you want to register?",
                                            "User not found", MessageBoxButton.YesNoCancel) == MessageBoxResult.Yes)
                        {
                            // если пользователь согласился на регистрацию, то добавляем в базу
                            user = db.Users.Add(new User
                            {
                                Login    = loginTxtbox.Text,
                                Password = StringCipher.Encrypt(passwordTxtbox.Password)
                            });
                            db.SaveChanges();
                        }
                    }
                    else                     // если юзер найдет, то проверяем пароль
                    {
                        if (StringCipher.Decrypt(user.Password) != passwordTxtbox.Password)
                        {
                            MessageBox.Show("Password is wrong!",
                                            "Wrong password!", MessageBoxButton.OK);
                            user = null;
                        }
                    }

                    // если юзер не null, значит он есть в базе
                    if (user != null)
                    {
                        // выполняем вход
                        MainWindow mainWindow = new MainWindow(user);
                        mainWindow.Show();               // открываем главное окно программы
                        Close();                         // закрываем окна входа
                    }
                }
            }
        }
예제 #5
0
        private void Submit_Click(object sender, RoutedEventArgs e)
        {
            bool fields_is_empty = true;

            foreach (TextBox item in FindVisualChildren <TextBox>(this))
            {
                if (!string.IsNullOrWhiteSpace(item.Text))
                {
                    fields_is_empty = false;
                    break;
                }
            }
            if (fields_is_empty)
            {
                MessageBox.Show("You must fill at least one field!");
                return;
            }

            using (PasswordDatabase db = new PasswordDatabase())
            {
                Account account = editingAccount == null ? new Account() : db.Accounts.FirstOrDefault(a => a.Id == editingAccount.Id);

                account.Title       = TitleTextbox.Text;
                account.Description = DescriptionTextbox.Text;
                account.Url         = URLTextbox.Text;
                account.Login       = LoginTextbox.Text;
                account.Password    = EncryptChkbox.IsChecked == true?
                                      StringCipher.Encrypt(PasswordTextbox.Text, MainWindow.currentUser.Password)
                                          : PasswordTextbox.Text;

                if (editingAccount == null)
                {
                    account.UserId = MainWindow.currentUser.Id;
                    db.Accounts.Add(account);
                }

                db.SaveChanges();
                DialogResult = true;
                Close();
            }
        }
 private void Search_Click(object sender, RoutedEventArgs e)
 {
     using (PasswordDatabase db = new PasswordDatabase())
     {
         IQueryable <Account> queryable = db.Accounts.Where(a => a.UserId == currentUser.Id);
         if (!string.IsNullOrWhiteSpace(TitleSearch.Text))
         {
             queryable = queryable.Where(a => a.Title.Contains(TitleSearch.Text));
         }
         if (!string.IsNullOrWhiteSpace(DescrSearch.Text))
         {
             queryable = queryable.Where(a => a.Description.Contains(DescrSearch.Text));
         }
         if (!string.IsNullOrWhiteSpace(UrlSearch.Text))
         {
             queryable = queryable.Where(a => a.Url.Contains(UrlSearch.Text));
         }
         if (!string.IsNullOrWhiteSpace(LoginSearch.Text))
         {
             queryable = queryable.Where(a => a.Login.Contains(LoginSearch.Text));
         }
         DataGrid.ItemsSource = queryable.ToList();
     }
 }