private void ExecuteSaveCommand(Object parameter) { if (GradeLimitValidation()) { //КОД корректировки лимитов foreach (Grade grade in Enum.GetValues(typeof(Grade))) { var limit = _limits.FirstOrDefault(l => l.Grade == (int)grade); if (limit == null) { limit = new TestGradeLimit() { TestId = NavigationHelper.CurrrentTest.Id }; limit.Grade = (int)grade; _limits.Add(limit); } switch (grade) { case Grade.Poor: limit.FromPer = 0; limit.ToPer = PoorMaxValue; break; case Grade.Satisfactory: limit.FromPer = SatisfyMinValue; limit.ToPer = SatisfyMaxValue; break; case Grade.Good: limit.FromPer = GoodMinValue; limit.ToPer = GoodMaxValue; break; case Grade.Excellent: limit.FromPer = ExcellentMinValue; limit.ToPer = ExcellentMaxValue; break; } } NavigationHelper.CurrrentTest.MinuteTimeLimit = MinuteLimitCount; NavigationHelper.CurrrentTest.QuestionCount = QuestionCount; //Работа с БД NavigationHelper.IsBusy = true; BackgroundProcessFactory.RunAsync(null, (o, e) => { DBDataSource.SaveTestParam(NavigationHelper.CurrrentTest, _limits.ToArray()); }, (o, e) => { NavigationHelper.IsBusy = false; if (e.Error != null) { return; } else { var functionsView = new TeacherFunctionsView(); var vm = new TeacherFunctionsViewModel(); vm.LoadData(); functionsView.DataContext = vm; NavigationHelper.NavigateTo(functionsView); } }); } else { MessageBox.Show("Не верно указаны параметры", "Не верно указаны параметры", MessageBoxButton.OK, MessageBoxImage.Stop); } }