/
kochkatech
/
Queue
Обзор
Документация
Войти
/
kochkatech
/
Queue
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
dev
src/Queue.Admin/Models/LaunchedScreenItem.cs
47 строк
2 KB
kochkareal
feat: вкладка "Экраны" в Admin — запуск/управление табло и АРМ оператора
27 июл 2026, 21:26
27 июл 2026, 21:26
62e41f9
Код
Авторство
О чём код?
using System; using System.Diagnostics; using CommunityToolkit.Mvvm.ComponentModel; using Queue.Admin.Services; namespace Queue.Admin.Models; public enum ScreenType { Display, Operator } // Запущенный процесс (Queue.Display или Queue.OperatorApp), которым управляет вкладка "Экраны". // Не сущность БД — состояние живёт только в памяти на время работы Queue.Admin. public partial class LaunchedScreenItem : ObservableObject { public ScreenType Type { get; } public Process Process { get; } // Только для Display, запущенного с --windowed — Operator не поддерживает переключение // режима (у него никогда не было проблемы с киоском, только у табло). public DisplayProcessHandle? PipeHandle { get; } // Слушает обратные уведомления от табло о фактической смене режима (в т.ч. когда // пользователь сам нажал Escape на табло, а не через кнопку в Admin) — см. // Services/ScreenStatusListener.cs. public ScreenStatusListener? StatusListener { get; } public DateTime LaunchedAt { get; } = DateTime.Now; [ObservableProperty] private string status = "Работает"; [ObservableProperty] private bool isKiosk; public string TypeDisplay => Type == ScreenType.Display ? "Табло очереди" : "АРМ оператора"; public LaunchedScreenItem(ScreenType type, Process process, DisplayProcessHandle? pipeHandle, ScreenStatusListener? statusListener) { Type = type; Process = process; PipeHandle = pipeHandle; StatusListener = statusListener; } }