using System; using System.Windows; using PipefyAddCompanies.Core.Services; using PipefyAddCompanies.Core.UseCases; using PipefyAddCompanies.UI.ViewModels; using Microsoft.Win32; using System.IO; using Microsoft.Extensions.Configuration; namespace PipefyAddCompanies.UI.Views { public partial class MainWindow : Window { private readonly MainWindowViewModel _viewModel; public MainWindow() { InitializeComponent(); var pipefyService = new PipefyService(); var processadorDeEmpresas = new ProcessadorDeEmpresas(pipefyService); _viewModel = new MainWindowViewModel(processadorDeEmpresas); DataContext = _viewModel; } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { // Chama o método de limpeza no ViewModel antes de fechar o app if (DataContext is MainWindowViewModel viewModel) { viewModel.OnWindowClosing(); } } internal static string? SelecionarArquivoPlanilha() { OpenFileDialog openFileDialog = new() { Filter = "Arquivos de Excel (*.xlsx)|*.xlsx|Todos os arquivos (*.*)|*.*", Title = "Selecione a Planilha de Empresas" }; return openFileDialog.ShowDialog() == true ? openFileDialog.FileName : null; } private void Window_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { e.Effects = DragDropEffects.Copy; } else { e.Effects = DragDropEffects.None; } } private void Window_Drop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); if (files.Length > 0) { string filePath = files[0]; _viewModel.DefinirCaminhoPlanilha(filePath); // Método de carregamento no ViewModel } } } } }