PipefyAddCompanies/UI/Views/MainWindow.xaml.cs

74 lines
2.2 KiB
C#

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
}
}
}
}
}