コード例 #1
0
        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();
        }