public async void Save() { try { string name = Name.Trim(); if (name.Length == 0) { await new PortableMessageDialog(PowerPlannerResources.GetString("String_NoNameMessageBody")).ShowAsync(); return; } await TryHandleUserInteractionAsync("Save", async (cancellationTask) => { SavedGradeScalesManager manager = await SavedGradeScalesManager.GetForAccountAsync(MainScreenViewModel.CurrentAccount); cancellationTask.ThrowIfCancellationRequested(); if (manager == null) { throw new NullReferenceException("manager was null"); } await manager.SaveGradeScale(name, _parameter.Scales); if (_parameter.OnSaved != null) { _parameter.OnSaved.Invoke(); } // We cancel after invoking the OnSaved, since otherwise the views wouldn't be updated correctly cancellationTask.ThrowIfCancellationRequested(); this.RemoveViewModel(); }, "Failed to save. Your error has been reported."); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); await new PortableMessageDialog("Failed to save. Your error has been reported.").ShowAsync(); return; } }
private async System.Threading.Tasks.Task ReloadSavedGradeScalesPicker() { var account = MainScreenViewModel.CurrentAccount; var savedScalesManager = await SavedGradeScalesManager.GetForAccountAsync(account); var savedScales = await savedScalesManager.GetSavedGradeScalesAsync(); if (!savedScales.Any(i => i.Name.Equals("United States"))) { savedScales.Add(new SavedGradeScale() { Name = "United States", GradeScales = GradeScale.GenerateDefaultScaleWithoutLetters() }); } if (!savedScales.Any(i => i.Name.Equals("Eleven-Point System"))) { savedScales.Add(new SavedGradeScale() { Name = "Eleven-Point System", GradeScales = GradeScale.GenerateElevenPointScale() }); } if (!savedScales.Any(i => i.Name.Equals("Twelve-Point System"))) { savedScales.Add(new SavedGradeScale() { Name = "Twelve-Point System", GradeScales = GradeScale.GenerateTwelvePointScale() }); } if (!savedScales.Any(i => i.Name.Equals("Mexico - 100 Point"))) { savedScales.Add(new SavedGradeScale() { Name = "Mexico - 100 Point", GradeScales = GradeScale.GenerateMexico100PointScale() }); } if (!savedScales.Any(i => i.Name.Equals("Mexico - 10 Point"))) { savedScales.Add(new SavedGradeScale() { Name = "Mexico - 10 Point", GradeScales = GradeScale.GenerateMexico10PointScale() }); } savedScales.Add(new SavedGradeScale() { Name = PowerPlannerResources.GetString("String_GradeScaleCustom") }); SavedGradeScales = savedScales; UpdateSelectedSavedGradeScale(); }