void ObjectsReposidory_ExercisesLoaded(object sender, EventArgs e) { ApplicationState.Current.Cache.Exercises.Loaded -= new EventHandler(ObjectsReposidory_ExercisesLoaded); if (ApplicationState.Current.Cache.Exercises == null || !ApplicationState.Current.Cache.Exercises.IsLoaded) { onExercisesLoaded(); BAMessageBox.ShowError(ApplicationStrings.ExerciseTypeViewModel_ErrRetrieveExercises); return; } if (GroupedExercises == null) { GroupedExercises = new ObservableCollection <GroupingLayer <string, ExerciseViewModel> >(); } else { GroupedExercises.Clear(); } var res = ApplicationState.Current.Cache.Exercises.Items.Values.Where(x => ExerciseType == null || x.ExerciseType == ExerciseType.Value).OrderBy(x => EnumLocalizer.Default.Translate(x.ExerciseType)).ThenBy(x => Settings.ExercisesSortBy == ExerciseSortBy.Name ? x.Name : x.Shortcut).Select(x => new ExerciseViewModel(x) { IsAddMode = SelectionMode }).GroupBy( x => EnumLocalizer.Default.Translate(x.Exercise.ExerciseType)).Select(n => new GroupingLayer <string, ExerciseViewModel>(n)); foreach (var exercise in res) { GroupedExercises.Add(exercise); } onExercisesLoaded(); }
public ExerciseViewModel GetExerciseView(Guid globalId) { return(GroupedExercises.SelectMany(groupedExercise => groupedExercise).FirstOrDefault(exerciseViewModel => exerciseViewModel.Exercise.GlobalId == globalId)); }