public PracticeRoutineRecorder GetPracticeRoutineRecorder(int id) { try { PracticeRoutine practiceRoutine = Get(id); var exerciseRecorderRecords = Connection.Query <PracticeRoutineExerciseRecorderRecord>("sp_GetPracticeRoutineExerciseRecordersByRoutineId", param: new { _practiceRoutineId = id }, commandType: CommandType.StoredProcedure); List <TimeSlotExerciseRecorder> exerciseRecorders = new List <TimeSlotExerciseRecorder>(); foreach (var rec in exerciseRecorderRecords) { var speedProgress = new SpeedProgress(rec.InitialRecordedSpeed, rec.LastRecordedSpeed, rec.TargetMetronomeSpeed, rec.SpeedProgressWeighting); var timeProgress = new PracticeTimeProgress(rec.TotalPracticeTime, rec.TargetPracticeTime, rec.PracticeTimeProgressWeighting); var manualProgress = new ManualProgress(rec.LastRecordedManualProgress, rec.ManualProgressWeighting); exerciseRecorders.Add(new TimeSlotExerciseRecorder(new Recorder(), rec.ExerciseId, $"{rec.TimeSlotTitle} : {rec.ExerciseTitle}", speedProgress, timeProgress, manualProgress, rec.AssignedPracticeTime)); } var practiceRoutineRecorder = new PracticeRoutineRecorder(practiceRoutine.Id, practiceRoutine.Title, exerciseRecorders); return(practiceRoutineRecorder); } catch (InvalidOperationException ex) { throw new DatabaseEntityNotFoundException($"Database entity does not exist for id: {id}", ex); } }
public void Half_Way_Between_Current_And_Target_Times_Means_Fifty_Percent_Progress() { var manualProgress = new ManualProgress( value: 50, weighting: 100 ); Assert.That(manualProgress.CalculateProgress(), Is.EqualTo(50)); }
public void Quarter_Way_Between_Current_And_Target_Times_Means_Quarter_Progress() { var manualProgress = new ManualProgress( value: 25, weighting: 100 ); Assert.That(manualProgress.CalculateProgress(), Is.EqualTo(25)); }
public static TimeSlotExerciseRecorder CreateSpeedProgressTimeSlotExerciseRecorder(int initialSpeed, int currentSpeed, int targetSpeed, int assignedTime) { var recorder = new Recorder(); var speedProgress = new SpeedProgress(initialSpeed, currentSpeed, targetSpeed, 100); var practiceTimeProgress = new PracticeTimeProgress(0, 0, 0); var manualProgress = new ManualProgress(0, 0); return(new TimeSlotExerciseRecorder(recorder, 1, "Speed Exercise", speedProgress, practiceTimeProgress, manualProgress, assignedTime)); }
public static TimeSlotExerciseRecorder CreateManualProgressTimeSlotExerciseRecorder(int value, int assignedTime) { var recorder = new Recorder(); var speedProgress = new SpeedProgress(0, 0, 0, 0); var practiceTimeProgress = new PracticeTimeProgress(0, 0, 0); var manualProgress = new ManualProgress(value, 100); return(new TimeSlotExerciseRecorder(recorder, 1, "Time Exercise", speedProgress, practiceTimeProgress, manualProgress, assignedTime)); }
public static TimeSlotExerciseRecorder CreateTimeSlotExerciseRecorder(int assignedTime) { var recorder = new Recorder(); var manualProgress = new ManualProgress(0, 50); var speedProgress = new SpeedProgress(0, 0, 120, 50); var practiceTimeProgress = new PracticeTimeProgress(0, 600, 50); return(new TimeSlotExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress, assignedTime)); }
public static ExerciseRecorder CreateManualProgressExerciseRecorder(int value) { var recorder = new Recorder(); var speedProgress = new SpeedProgress(0, 0, 0, 0); var practiceTimeProgress = new PracticeTimeProgress(0, 0, 0); var manualProgress = new ManualProgress(value, 100); return(new ExerciseRecorder(recorder, 1, "Time Exercise", speedProgress, practiceTimeProgress, manualProgress)); }
public void Ensure_That_All_Properties_Set_When_Initialized() { var manualProgress = new ManualProgress( value: 50, weighting: 100 ); Assert.That(manualProgress.Weighting, Is.EqualTo(100)); Assert.That(manualProgress.Value, Is.EqualTo(50)); }
public void When_Value_Subtracted_CalculateProgress_Works_As_Expected() { var manualProgress = new ManualProgress( value: 50, weighting: 100 ); var newManualProgress = manualProgress.Decrease(10); manualProgress.Decrease(10); Assert.That(newManualProgress.CalculateProgress(), Is.EqualTo(40)); }
public void Percentage_Progress_With_No_Weightings_Allocated_To_Speed_Returns_0() { var recorder = new Recorder(); var manualProgress = new ManualProgress(0, 0); var speedProgress = new SpeedProgress(0, 0, 120, 0); var practiceTimeProgress = new PracticeTimeProgress(0, 600, 0); using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress)) { Assert.That(exerciseRecorder.SpeedProgressPercentageAllocation, Is.EqualTo(0)); } }
public void Percentage_Progress_Allocation_To_Manual_ShowsCorrect_Percentage() { var recorder = new Recorder(); var manualProgress = new ManualProgress(0, 500); var speedProgress = new SpeedProgress(0, 0, 120, 500); var practiceTimeProgress = new PracticeTimeProgress(0, 600, 1000); using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress)) { Assert.That(exerciseRecorder.ManualProgressPercentageAllocation, Is.EqualTo(25)); } }
public void TimeSlotTimer_RemainingTime_Negative_Returns_0() { int recordedTime = 601; int assignedTime = 600; var recorder = new TestRecorder(recordedTime); var manualProgress = new ManualProgress(0, 50); var speedProgress = new SpeedProgress(0, 0, 120, 50); var practiceTimeProgress = new PracticeTimeProgress(0, 600, 50); var exerciseRecorder = new TimeSlotExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress, assignedTime); Assert.That(exerciseRecorder.RemainingSeconds, Is.EqualTo(0)); }
public void When_ManualProgress_Changes_Current_Progress_Negatively_ManualProgress_Reflects_This_Correctly() { var recorder = new Mock <IRecorder>(); var speedProgress = new Mock <ISpeedProgress>(); var practiceTimeProgress = new Mock <IPracticeTimeProgress>(); var manualProgress = new ManualProgress(100, 100); using (var exerciseRecorder = new ExerciseRecorder(recorder.Object, 1, "Exercise Title", speedProgress.Object, practiceTimeProgress.Object, manualProgress)) { exerciseRecorder.DecrementManualProgress(25); Assert.That(exerciseRecorder.CurrentManualProgress, Is.EqualTo(75)); } }
public void Adding_Speed_Changes_Current_OverallProgress_When_Applicably_Weighted() { var recorder = new Recorder(); var manualProgress = new ManualProgress(0, 50); var speedProgress = new SpeedProgress(0, 0, 120, 50); var practiceTimeProgress = new PracticeTimeProgress(0, 600, 50); using (var exerciseRecorder = new ExerciseRecorder(recorder, 1, "Exercise Title", speedProgress, practiceTimeProgress, manualProgress)) { var progressBefore = exerciseRecorder.CurrentOverAllProgress; exerciseRecorder.IncrementSpeed(120); var progressAfter = exerciseRecorder.CurrentOverAllProgress; Assert.That(progressBefore, Is.LessThan(progressAfter)); Assert.That(progressAfter, Is.EqualTo(33)); } }
public IExerciseRecorder GetExerciseRecorder(int id) { try { var exercise = Get(id); var rec = Connection.QuerySingle <ExerciseRecorderRecord>("sp_GetExerciseRecorderByExerciseId", param: new { _exerciseId = id }, commandType: CommandType.StoredProcedure); var speedProgress = new SpeedProgress(rec.InitialRecordedSpeed, rec.LastRecordedSpeed, rec.TargetMetronomeSpeed, rec.SpeedProgressWeighting); var timeProgress = new PracticeTimeProgress(rec.TotalPracticeTime, rec.TargetPracticeTime, rec.PracticeTimeProgressWeighting); var manualProgress = new ManualProgress(rec.LastRecordedManualProgress, rec.ManualProgressWeighting); var exerciseRecorder = new ExerciseRecorder(new Recorder(), rec.ExerciseId, rec.ExerciseTitle, speedProgress, timeProgress, manualProgress); return(exerciseRecorder); } catch (InvalidOperationException ex) { throw new DatabaseEntityNotFoundException($"Database entity does not exist for id: {id}", ex); } }