using System; using System.Linq; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Media.Imaging; using dmeo040225.Models; using dmeo040225.Services; namespace dmeo040225; public partial class SellerWindow : Window { private readonly User _currentUser; public SellerWindow(User user) { InitializeComponent(); _currentUser = user; using var context = new DatabaseContext(); var role = context.Roles.FirstOrDefault(it => it.Id == user.RoleId).Name; Image.Source = new Bitmap(user.Photopath); FioName.Text = user.Fio; RoleName.Text = role; TimerService.Instance.TimeUpdated += UpdateTimerText; TimerService.Instance.TimerExpired += LogoutUser; if (_currentUser.RoleId == 2) { TimerService.Instance.Start(); // Начинаем отсчёт, если ещё не запущен } } private void UpdateTimerText(TimeSpan time) { TimerText.Text = $"Осталось: {time:mm\\:ss}"; } private void LogoutUser() { Close(); var mainWindow = new MainWindow(); mainWindow.Show(); } private void NewOrder_OnClick(object? sender, RoutedEventArgs e) { NewOrder newOrder = new NewOrder(); newOrder.ShowDialog(this); } private void Back_OnClick(object? sender, RoutedEventArgs e) { TimerService.Instance.Reset(); Close(); // MainWindow mainWindow = new MainWindow(); // mainWindow.Show(); } protected override void OnClosed(EventArgs e) { TimerService.Instance.TimeUpdated -= UpdateTimerText; TimerService.Instance.TimerExpired -= LogoutUser; base.OnClosed(e); } }