private async Task StartAsync() { workoutState = WorkoutState.Started; workoutCancellationTokenSource = new CancellationTokenSource(); IEnumerable <IExercise> exercises = workout.Exercises; round = workout.Rounds; await using Timer timer = new Timer(OnTimerElapsed, null, 0, 1000); while (round > 0) { if (workoutCancellationTokenSource.IsCancellationRequested) { break; } foreach (IExercise exercise in exercises) { SetExerciseInfo(exercise); await Task.Delay(exercise.Duration, workoutCancellationTokenSource.Token); } await Task.Delay(workout.RestAfterRound, workoutCancellationTokenSource.Token); round--; } RestoreDefaults(); workoutState = WorkoutState.Finished; }
protected override void ReadInternal(ResponseReader reader) { WorkoutState val = (WorkoutState)reader.ReadByte(); WorkoutState = Enum.IsDefined(typeof(WorkoutState), val) ? val : WorkoutState.Unknown; }
public Workout(IEnumerable <IEvent> events) { State = new WorkoutState(events); state = State as WorkoutState; }
private async Task StopAsync() { workoutCancellationTokenSource?.Cancel(); workoutState = WorkoutState.NotStarted; }
protected override Task OnInitializedAsync() { workout = new Spartacus(); workoutState = WorkoutState.NotStarted; return(Task.CompletedTask); }
private async Task ResumeAsync() { workoutState = WorkoutState.Started; }
private async Task PauseAsync() { workoutState = WorkoutState.Paused; }