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); } } }
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(); // закрываем окна входа } } } }
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(); } }