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:
parent
50c5e390ba
commit
981074871a
@ -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"
|
||||||
|
|||||||
@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user