private static void ValidateUserHasAccessToTimer(string userId, Models.Database.Timer timer) { if (timer.UserId != userId) { throw new UnauthorizedAccessException( $"The timer with id={timer.Id} doesn't belong to authenticated user!"); } }
private Task StopTimerAsync(Models.Database.Timer currentTimer) { return(currentTimer.State == TimerState.Stopped ? Task.CompletedTask : timerRepository.UpdateTimerStateAsync( currentTimer.Id, TimerState.Stopped, 0, DateTime.UtcNow.Ticks)); }
private Task RunTimerAsync(Models.Database.Timer currentTimer) { var passedSeconds = 0; var currentTime = DateTime.UtcNow.Ticks; if (currentTimer.State == TimerState.Paused) { passedSeconds = currentTimer.PassedSeconds; } return(timerRepository.UpdateTimerStateAsync(currentTimer.Id, TimerState.Active, passedSeconds, currentTime)); }
private Task ExpireTimerAsync(Models.Database.Timer currentTimer) { if (currentTimer.State != TimerState.Active) { return(Task.CompletedTask); } return(timerRepository.UpdateTimerStateAsync( currentTimer.Id, TimerState.Expired, currentTimer.PeriodInSeconds, DateTime.UtcNow.Ticks)); }
private Task PauseTimerAsync(Models.Database.Timer currentTimer) { var currentTime = DateTime.UtcNow.Ticks; var timePassed = currentTimer.PassedSeconds + (int)TimeSpan.FromTicks(currentTime - currentTimer.LastUpdate).TotalSeconds; if (timePassed > currentTimer.PeriodInSeconds) { timePassed = 0; } return(timerRepository.UpdateTimerStateAsync(currentTimer.Id, TimerState.Paused, timePassed, currentTime)); }
private Task DeleteTimerAsync(Models.Database.Timer currentTimer) { return(timerRepository.DeleteTimerAsync(currentTimer.Id)); }
private Task RerunTimerAsync(Models.Database.Timer currentTimer) { return(timerRepository.UpdateTimerStateAsync(currentTimer.Id, TimerState.Active, 0, DateTime.UtcNow.Ticks)); }