- Добавлен асинхронный процесс аппаратной выдачи физических призов (хоппер и витрина) в GameplayHudController. - Реализована блокировка выдачи по 10-секундному таймауту датчика хоппера с гарантированной отправкой команды отключения двигателя '300'. - Реализован автоматический таймаут неактивности на экране QR-кода с последующим переходом в главное меню. - Расширен сервис статистики PrizeSessionStateService новыми долгосрочными счетчиками (сыгранные игры, очки, монеты, сбои связи COM, физ. выдачи и ошибки). - Обновлен построитель сводки статистики в меню настроек для отображения новых счетчиков и списка последних 5 сессий. - Написаны EditMode тесты для проверки инкремента счетчиков и запуска выдачи призов.
51 lines
1.5 KiB
C#
51 lines
1.5 KiB
C#
using System;
|
||
|
||
namespace DanroJump.Prizes
|
||
{
|
||
/// <summary>
|
||
/// Запись истории решения о призе и его выдачи.
|
||
/// </summary>
|
||
public sealed class PrizeSessionRecord
|
||
{
|
||
public PrizeSessionRecord(
|
||
string sessionId,
|
||
PrizeFlowResult result,
|
||
PrizeSessionStatus status,
|
||
DateTime startedAtUtc,
|
||
DateTime? updatedAtUtc,
|
||
string note = null)
|
||
{
|
||
SessionId = sessionId ?? string.Empty;
|
||
Result = result;
|
||
Status = status;
|
||
StartedAtUtc = startedAtUtc;
|
||
UpdatedAtUtc = updatedAtUtc ?? startedAtUtc;
|
||
Note = note ?? string.Empty;
|
||
}
|
||
|
||
public PrizeSessionRecord(
|
||
string sessionId,
|
||
PrizeFlowResult result,
|
||
PrizeSessionStatus status,
|
||
DateTime startedAtUtc,
|
||
string note = null)
|
||
: this(sessionId, result, status, startedAtUtc, null, note)
|
||
{
|
||
}
|
||
|
||
public string SessionId { get; }
|
||
public PrizeFlowResult Result { get; }
|
||
public PrizeSessionStatus Status { get; private set; }
|
||
public DateTime StartedAtUtc { get; }
|
||
public DateTime UpdatedAtUtc { get; private set; }
|
||
public string Note { get; private set; }
|
||
|
||
public void SetStatus(PrizeSessionStatus status, DateTime updatedAtUtc, string note = null)
|
||
{
|
||
Status = status;
|
||
UpdatedAtUtc = updatedAtUtc;
|
||
Note = note ?? string.Empty;
|
||
}
|
||
}
|
||
}
|