using Avalonia; using Avalonia.Controls; using Avalonia.Controls.Shapes; using Avalonia.Interactivity; using Avalonia.Layout; using Avalonia.Media; using AvaloniaApplication1.DataBase; using DaireApplication.DataBase; using DaireApplication.Views; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace DaireApplication; public partial class Home : UserControl { private Button? _previousButton; private Button? currentButton; private UserTable _userRepo = new UserTable(); private MainWindow? _mainWindow; public Home() { } public Home(MainWindow mainWindow) { _mainWindow = mainWindow; InitializeComponent(); // Migrate legacy data to AppData directory DataPathManager.MigrateLegacyData(); setDefaultSettings(); setDefaultUsers(); setDefaultRecipe(); setDefaultMachine(); SetDefaultMapping(); SetDefaultConfigration(); SetDefaultScreen(); SetDefaultErrorSettings(); addDynamicButtons(); _mainWindow.UserName.Holding -= Admin.CloseApplication; } private async void OnUserButtonClick(object? sender, RoutedEventArgs e) { if (sender is Button button) // Ensure the sender is the button that triggered the event { currentButton = button; if (_previousButton != null) { if (_previousButton == button) { if (button.Tag == "1") { CalcGrid.IsVisible = !CalcGrid.IsVisible; machinePic.IsVisible = !machinePic.IsVisible; return; } else { loginBtn.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } } ResetButtonColor(_previousButton); } var textBlock = button.Content as TextBlock; if (textBlock != null) { textBlock.Foreground = Avalonia.Media.Brushes.DeepPink; } button.BorderBrush = Avalonia.Media.Brushes.DeepPink; button.BorderThickness = new Thickness(3); _previousButton = button; if (button.Tag == "1") { CalcGrid.IsVisible = !CalcGrid.IsVisible; machinePic.IsVisible = !machinePic.IsVisible; } else { loginBtn.RaiseEvent(new RoutedEventArgs(Button.ClickEvent)); } //CalcGrid.IsVisible = !CalcGrid.IsVisible; //machinePic.IsVisible = !machinePic.IsVisible; } //End UI... } private void LogIn(object? sender, RoutedEventArgs e) { if (sender is Button button) { var users = _userRepo.ReadUsers(); string inputText = InputTextBox.Text; foreach (var item in users) { if (currentButton.Content is Grid grid) { if (grid.Children[0] is TextBlock textBlock) { if (textBlock.Text == item.UserName) { if (item.IsActive) { if (inputText == item.Password) { var userName = _mainWindow.FindControl