diff --git a/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Features/Login/TelaLogin.cs b/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Features/Login/TelaLogin.cs index c87247a..ce77f9c 100644 --- a/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Features/Login/TelaLogin.cs +++ b/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Features/Login/TelaLogin.cs @@ -1,14 +1,5 @@ -using LocadoraDeVeiculos.Aplicacao.ClienteModule; -using LocadoraDeVeiculos.Aplicacao.CupomModule; -using LocadoraDeVeiculos.Aplicacao.FuncionarioModule; -using LocadoraDeVeiculos.Aplicacao.GrupoDeVeiculosModule; -using LocadoraDeVeiculos.Aplicacao.LocacaoModule; -using LocadoraDeVeiculos.Aplicacao.ParceiroModule; -using LocadoraDeVeiculos.Aplicacao.ServicoModule; -using LocadoraDeVeiculos.Aplicacao.VeiculoModule; +using LocadoraDeVeiculos.Aplicacao.FuncionarioModule; using LocadoraDeVeiculos.Dominio.FuncionarioModule; -using LocadoraDeVeiculos.Infra.EntityFramework; -using LocadoraDeVeiculos.Infra.EntityFramework.Features; using System; using System.Threading; using System.Windows.Forms; @@ -19,71 +10,64 @@ public partial class TelaLogin : Form { private Thread thread; - private readonly LocadoraDeVeiculosDBContext db; - private readonly ServicoAppService servicoAppService; - private readonly ParceiroAppService parceiroAppServic,e; - private readonly CupomAppService cupomAppService; private readonly FuncionarioAppService funcionarioAppService; - private readonly GrupoDeVeiculosAppService grupoDeVeiculosAppService; - private readonly ClienteAppService clienteAppService; - private readonly VeiculoAppService veiculoAppService; - private readonly LocacaoAppService locacaoAppService; + private readonly Func telaPrincipalFactory; + private Funcionario funcionarioLogado; - public TelaLogin() + public TelaLogin( + FuncionarioAppService funcionarioAppService, + Func telaPrincipalFactory) { InitializeComponent(); - db = new(); - funcionarioAppService = new(new FuncionarioORM(db)); - servicoAppService = new(new ServicoORM(db)); - clienteAppService = new(new ClienteORM(db)); - funcionarioAppService = new(new FuncionarioORM(db)); - veiculoAppService = new(new VeiculoORM(db)); - locacaoAppService = new(new LocacaoORM(db)); + this.funcionarioAppService = funcionarioAppService; + this.telaPrincipalFactory = telaPrincipalFactory; } private void BtnConfirmar_Click(object sender, EventArgs e) { - if (textUsuario.Text == "admin" && textSenha.Text == "admin") { funcionarioLogado = new Funcionario("admin", "administrador"); EfetuarLogin(); + return; } - else + foreach (Funcionario funcionario in funcionarioAppService.SelecionarTodasEntidade()) { - foreach (Funcionario funcionario in funcionarioAppService.SelecionarTodasEntidade()) - if (textUsuario.Text == funcionario.UsuarioAcesso && textSenha.Text == funcionario.Senha) - { - funcionarioLogado = funcionario; - EfetuarLogin(); - return; - } - - textUsuario.Clear(); - textSenha.Clear(); - MessageBox.Show("Invalid Login or Password."); + if (textUsuario.Text == funcionario.UsuarioAcesso && + textSenha.Text == funcionario.Senha) + { + funcionarioLogado = funcionario; + EfetuarLogin(); + return; + } } + + textUsuario.Clear(); + textSenha.Clear(); + MessageBox.Show("Invalid Login or Password."); } private void EfetuarLogin() { MessageBox.Show($"Welcome {textUsuario.Text}!"); + thread = new Thread(ChamarTelaPrincipal); thread.SetApartmentState(ApartmentState.STA); thread.Start(); - TelaLogin login = new(); - this.Dispose(); - login.Close(); + Close(); } public void ChamarTelaPrincipal() { TelaPrincipalForm.FuncionarioLogado = funcionarioLogado; - Application.Run(new TelaPrincipalForm(servicoAppService, clienteAppService, veiculoAppService, locacaoAppService)); + + TelaPrincipalForm telaPrincipal = telaPrincipalFactory(); + + Application.Run(telaPrincipal); } private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) @@ -91,4 +75,4 @@ private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs MessageBox.Show("Please contact the administrator to recreate your password."); } } -} \ No newline at end of file +} diff --git a/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Program.cs b/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Program.cs index 038c93e..ed38a50 100644 --- a/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Program.cs +++ b/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Program.cs @@ -1,10 +1,12 @@ -using LocadoraDeVeiculos.WindowsApp.Features.Login; +using Autofac; +using LocadoraDeVeiculos.WindowsApp.Features.Login; using System; using LocadoraDeVeiculos.Infra.EntityFramework; using System.Windows.Forms; using Microsoft.EntityFrameworkCore; using System.Linq; using LocadoraDeVeiculos.Infra.Logs; +using LocadoraDeVeiculos.WindowsApp.Shared; namespace LocadoraDeVeiculos.WindowsApp { @@ -18,12 +20,12 @@ static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - LocadoraDeVeiculosDBContext db = new (); + LocadoraDeVeiculosDBContext db = new(); GeradorLog.ConfigurarLog(); var pendingChanges = db.Database.GetPendingMigrations(); if (pendingChanges.Any()) db.Database.Migrate(); - Application.Run(new TelaLogin()); + Application.Run(AutoFac.Container.Resolve()); } } } diff --git a/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Shared/AutoFac.cs b/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Shared/AutoFac.cs index 5ba8897..ec3624b 100644 --- a/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Shared/AutoFac.cs +++ b/LocadoraDeVeiculos/LocadoraDeVeiculos.WindowsApp/Shared/AutoFac.cs @@ -23,6 +23,7 @@ using LocadoraDeVeiculos.WindowsApp.Features.Devolucoes; using LocadoraDeVeiculos.WindowsApp.Features.Funcionarios; using LocadoraDeVeiculos.WindowsApp.Features.GrupoDeVeiculos; +using LocadoraDeVeiculos.WindowsApp.Features.Login; using LocadoraDeVeiculos.WindowsApp.Features.Locacoes; using LocadoraDeVeiculos.WindowsApp.Features.Parceiros; using LocadoraDeVeiculos.WindowsApp.Features.Servicos; @@ -45,9 +46,17 @@ static AutoFac() ConfigurarOperacoes(); + ConfigurarForms(); + Container = Builder.Build(); } + private static void ConfigurarForms() + { + Builder.RegisterType().InstancePerDependency(); + Builder.RegisterType().InstancePerDependency(); + } + private static void ConfigurarOperacoes() { Builder.RegisterType().InstancePerDependency();