using System.Collections; using AutoAgent.Domain.Models; namespace AutoAgent.Domain.Utils { public class DelayGenerator : ISequenceGenerator { private ISequenceGenerator _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 Reset() { _generator.Reset(); return this; } public DelayGenerator(ISequenceGenerator generator) { _generator = generator; } public IEnumerator GetEnumerator() { while (HasValues) { yield return Next(); } } IEnumerator IEnumerable.GetEnumerator() { return GetEnumerator(); } } }