BD_empresa/MainWindow.xaml.cs
Giuliano Paschoalino 981074871a Refatora lógica de filtros e manipulação de diretórios
Adiciona campo de busca de unidades no `MainWindow.xaml`, vinculado ao ViewModel com atualização em tempo real.

Ajusta métodos de manipulação de diretórios (`MouseDoubleClick` e `EnterKeyDown`) para abrir o diretório pai de `unidade.Caminho_NFs`, com validações e tratamento de exceções aprimorados.

Simplifica setters das propriedades `SearchEmpresaText` e `SearchUnidadeText` no ViewModel, garantindo atualização consistente dos filtros e removendo verificações redundantes.

Inclui namespace `System.IO` para manipulação de caminhos no ViewModel.
2025-08-20 14:50:51 -03:00

71 lines
2.8 KiB
C#

using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace BD_empresa
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// Caminho do banco de dados Access
string accessDbPath = "X:\\Middle\\Informativo Setorial\\Modelo Word\\BD1_dados cadastrais e faturas.accdb";
var accessService = new Data.AccessService($"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={accessDbPath};Jet OLEDB:Database Password=gds21");
DataContext = new ViewModels.MainWindowViewModel(accessService);
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
txtEmpresaSearch.Focus();
}
private void UnidadeListView_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
{
if (sender is ListViewItem listViewItem && listViewItem.Content is Data.UnidadeSmart unidade && !string.IsNullOrWhiteSpace(unidade.Caminho_NFs))
{
string? parentDirectory = System.IO.Path.GetDirectoryName(unidade.Caminho_NFs);
if (!string.IsNullOrWhiteSpace(parentDirectory))
{
try
{
System.Diagnostics.Process.Start("explorer.exe", parentDirectory);
}
catch (System.Exception ex)
{
MessageBox.Show($"Não foi possível abrir a pasta: {ex.Message}", "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
}
private void UnidadeListView_EnterKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.Enter && sender is ListViewItem listViewItem && listViewItem.Content is Data.UnidadeSmart unidade && !string.IsNullOrWhiteSpace(unidade.Caminho_NFs))
{
string? parentDirectory = System.IO.Path.GetDirectoryName(unidade.Caminho_NFs);
if (!string.IsNullOrWhiteSpace(parentDirectory))
{
try
{
System.Diagnostics.Process.Start("explorer.exe", unidade.Caminho_NFs);
}
catch (System.Exception ex)
{
MessageBox.Show($"Não foi possível abrir a pasta: {ex.Message}", "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
}
}
}
}
}
}