// When page is navigated to set data context to selected item in list protected override void OnNavigatedTo(NavigationEventArgs e) { if (DataContext == null) { string selectedIndex = ""; if (NavigationContext.QueryString.TryGetValue("workout", out selectedIndex)) { int index = int.Parse(selectedIndex); DataContext = App.ViewModel.Items[index]; current_exercise_instance = (DataContext as WorkoutViewModel).LoadedExercises.First(); allModels = (DataContext as WorkoutViewModel).LoadedExercises.ToArray(); CurExercise.Text = "Exercise: " + current_exercise_instance.Type.Name; Countdown.Text = ""+current_exercise_instance.Duration; Remaining.Text = "Remaining: "+current_exercise_instance.Amount; } } }
public void addExercise(ExerciseViewModel ex) { _loadedExercises.Add(ex); _durationTime += ex.Duration; NotifyPropertyChanged("DurationLine"); NotifyPropertyChanged("LoadedExercises"); }
void dt_Tick(object sender, EventArgs e) { ticks_running++; //TODO must check that there is always an exercise and amount can't be 0!! if (ticks_running < 1) { Countdown.Text = "" + (-ticks_running); return; } if (ticks_running == 1) //First tick, set it all up { CurExercise.Text = "Exercise: " + current_exercise_instance.Type.Name; } Countdown.Text = ""+(current_exercise_instance.Duration - ticks_running + 1); int finished = (ticks_running == 1 ? ticks_running : ticks_running - 1) / (current_exercise_instance.Duration / current_exercise_instance.Amount); Remaining.Text = "Remaining: " + (current_exercise_instance.Amount - finished); if (current_exercise_instance.Duration == ticks_running - 1) { ticks_running = -SettingsPage.GetSettingsHandler.pause_duration; //TODO set the layout to take a break CurExercise.Text = "Take a break!"; Countdown.Text = "" + SettingsPage.GetSettingsHandler.pause_duration; current_exercise_number++; //Debug.WriteLine("Current exercise " + current_exercise_number+" from "+allModels.Length); if (current_exercise_number == allModels.Length) { CurExercise.Text = "Congratulations!"; Remaining.Text = "Workout finished."; Countdown.Text = ""; (sender as System.Windows.Threading.DispatcherTimer).Stop(); DateTime now = DateTime.Now; HashSet<string> exx = new HashSet<string>(); foreach (ExerciseViewModel evm in allModels) { exx.Add(evm.Type.Name); } WorkoutPlanner.WorkoutChart.WorkoutPerDay wpd = new WorkoutPlanner.WorkoutChart.WorkoutPerDay(now.Day+"/"+now.Month, (DataContext as WorkoutViewModel).DurationTime, exx); WorkoutChart.addWorkoutPerDay(wpd, true); return; } current_exercise_instance = allModels[current_exercise_number]; //Debug.WriteLine("AAA "+current_exercise_instance.Type.Name+" for "+current_exercise_number); return; } }