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.
This commit is contained in:
Giuliano Paschoalino 2025-08-20 14:50:51 -03:00
parent 50c5e390ba
commit 981074871a
3 changed files with 28 additions and 19 deletions

View File

@ -82,7 +82,7 @@
<ColumnDefinition Width="*" /> <ColumnDefinition Width="*" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<TextBlock Text="Pesquisar Unidade:" Margin="0,0,10,0" Grid.Row="1"/> <TextBlock Text="Pesquisar Unidade:" Margin="0,0,10,0" Grid.Row="1"/>
<TextBox <TextBox x:Name="txtUnidadeSearch"
Margin="0,0,10,0" Margin="0,0,10,0"
VerticalAlignment="Center" VerticalAlignment="Center"
Grid.Column="2" Grid.Column="2"

View File

@ -33,13 +33,18 @@ namespace BD_empresa
{ {
if (sender is ListViewItem listViewItem && listViewItem.Content is Data.UnidadeSmart unidade && !string.IsNullOrWhiteSpace(unidade.Caminho_NFs)) if (sender is ListViewItem listViewItem && listViewItem.Content is Data.UnidadeSmart unidade && !string.IsNullOrWhiteSpace(unidade.Caminho_NFs))
{ {
try string? parentDirectory = System.IO.Path.GetDirectoryName(unidade.Caminho_NFs);
if (!string.IsNullOrWhiteSpace(parentDirectory))
{ {
System.Diagnostics.Process.Start("explorer.exe", unidade.Caminho_NFs); try
} {
catch (System.Exception ex) System.Diagnostics.Process.Start("explorer.exe", parentDirectory);
{ }
MessageBox.Show($"Não foi possível abrir a pasta: {ex.Message}", "Erro", MessageBoxButton.OK, MessageBoxImage.Error); catch (System.Exception ex)
{
MessageBox.Show($"Não foi possível abrir a pasta: {ex.Message}", "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
}
} }
} }
} }
@ -47,13 +52,18 @@ namespace BD_empresa
{ {
if (e.Key == Key.Enter && sender is ListViewItem listViewItem && listViewItem.Content is Data.UnidadeSmart unidade && !string.IsNullOrWhiteSpace(unidade.Caminho_NFs)) if (e.Key == Key.Enter && sender is ListViewItem listViewItem && listViewItem.Content is Data.UnidadeSmart unidade && !string.IsNullOrWhiteSpace(unidade.Caminho_NFs))
{ {
try string? parentDirectory = System.IO.Path.GetDirectoryName(unidade.Caminho_NFs);
if (!string.IsNullOrWhiteSpace(parentDirectory))
{ {
System.Diagnostics.Process.Start("explorer.exe", unidade.Caminho_NFs); try
} {
catch (System.Exception ex) System.Diagnostics.Process.Start("explorer.exe", unidade.Caminho_NFs);
{ }
MessageBox.Show($"Não foi possível abrir a pasta: {ex.Message}", "Erro", MessageBoxButton.OK, MessageBoxImage.Error); catch (System.Exception ex)
{
MessageBox.Show($"Não foi possível abrir a pasta: {ex.Message}", "Erro", MessageBoxButton.OK, MessageBoxImage.Error);
}
} }
} }
} }

View File

@ -1,6 +1,7 @@
using System; using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.ComponentModel; using System.ComponentModel;
using System.IO;
using System.Runtime.CompilerServices; using System.Runtime.CompilerServices;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
@ -29,6 +30,7 @@ namespace BD_empresa.ViewModels
if (_searchEmpresaText != value) if (_searchEmpresaText != value)
{ {
_searchEmpresaText = value; _searchEmpresaText = value;
SearchUnidadeText = null; // Limpa o filtro de unidades ao mudar a empresa
OnPropertyChanged(); OnPropertyChanged();
FiltrarClientes(); FiltrarClientes();
AtualizarUnidadesSelecionadas(); AtualizarUnidadesSelecionadas();
@ -41,12 +43,9 @@ namespace BD_empresa.ViewModels
get => _searchUnidadeText; get => _searchUnidadeText;
set set
{ {
if (_searchUnidadeText != value) _searchUnidadeText = value;
{ OnPropertyChanged();
_searchUnidadeText = value; AtualizarUnidadesSelecionadas();
OnPropertyChanged();
AtualizarUnidadesSelecionadas();
}
} }
} }