using System; namespace Code.Infrastructure.Loadings { public class Loading { private int _progress; private Action _completed; private Action _loadProgress; public Loading(int maxProgress, Action completed, Action loadProgress = null) { _progress = maxProgress; MaxProgress = maxProgress; _completed = completed; _loadProgress = loadProgress; } public int CurrentProgress => _progress; public int MaxProgress { get; } public void DoProgress() { _progress--; _loadProgress?.Invoke(this); if(_progress <= 0) _completed(); } } }