Demka_kur/Hardik/Date/Timer.cs

52 lines
1.4 KiB
C#
Raw Normal View History

2025-02-11 10:23:14 +00:00
using System;
using System.Timers;
namespace Demka_Snova_1.Hardik.Date
{
public class Otchot
{
private Timer _timer;
private int _sessionDuration = 10;
private int _warningTime = 5;
2025-03-05 09:12:58 +00:00
private int _blockTime = 3;
2025-02-11 10:23:14 +00:00
private DateTime _sessionStartTime;
public event Action<string> OnWarning;
public event Action OnSessionEnd;
public void Start()
{
_sessionStartTime = DateTime.Now;
_timer = new Timer(60000); // 1 минута
_timer.Elapsed += TimerOtchot;
_timer.Start();
}
private void TimerOtchot(object sender, ElapsedEventArgs e)
{
var OtchotTime = DateTime.Now - _sessionStartTime;
var remainingTime = _sessionDuration - OtchotTime.TotalMinutes;
if (remainingTime <= _warningTime && remainingTime > 0)
{
OnWarning?.Invoke($"До окончания сеанса осталось {remainingTime} минут.");
}
if (remainingTime <= 0)
{
_timer.Stop();
OnSessionEnd?.Invoke();
BlockLogin();
}
}
private void BlockLogin()
{
2025-03-05 09:12:58 +00:00
2025-02-11 10:23:14 +00:00
var blockTime = DateTime.Now.AddMinutes(_blockTime);
while (DateTime.Now < blockTime) // Блок на 3 минуты
{
}
}
}
}