win32-automation-agent/Domain/Utils/DelayGenerator.cs
2026-01-08 21:33:01 +03:00

48 lines
1.2 KiB
C#

using System.Collections;
using AutoAgent.Domain.Models;
namespace AutoAgent.Domain.Utils
{
public class DelayGenerator : ISequenceGenerator<Delay>
{
private ISequenceGenerator<int> _generator;
public Delay Min { get => new Delay { Value = _generator.Min }; }
public Delay Max { get => new Delay { Value = _generator.Max }; }
public double Progress { get => _generator.Progress; }
public double Step { get => _generator.Step; }
public bool HasValues { get => _generator.HasValues; }
public Delay Next()
{
if (!HasValues)
{
Reset();
}
return new Delay { Value = _generator.Next() };
}
public ISequenceGenerator<Delay> Reset()
{
_generator.Reset();
return this;
}
public DelayGenerator(ISequenceGenerator<int> generator)
{
_generator = generator;
}
public IEnumerator<Delay> GetEnumerator()
{
while (HasValues)
{
yield return Next();
}
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}