using System; using System.Linq; using Avalonia; using Avalonia.Collections; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using Avalonia.Media.Imaging; using dmeo040225.Models; using dmeo040225.Services; namespace dmeo040225; public partial class AdminWindow : Window { public AdminWindow(User user) { InitializeComponent(); 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; TimerService.Instance.Start(); } private void Back_OnClick(object? sender, RoutedEventArgs e) { TimerService.Instance.Reset(); Close(); // MainWindow mainWindow = new MainWindow(); // mainWindow.ShowDialog(this); } private void History_OnClick(object? sender, RoutedEventArgs e) { HistoryWindow historyWindow = new HistoryWindow(); historyWindow.ShowDialog(this); } private void UpdateTimerText(TimeSpan time) { TimerText.Text = $"Осталось: {time:mm\\:ss}"; } private void LogoutUser() { Close(); var mainWindow = new MainWindow(); mainWindow.Show(); } protected override void OnClosed(EventArgs e) { TimerService.Instance.TimeUpdated -= UpdateTimerText; TimerService.Instance.TimerExpired -= LogoutUser; base.OnClosed(e); } }