private async System.Threading.Tasks.Task FinishCreateAccount(string username, string localToken, string token, long accountId, int deviceId, string email) { if (DefaultAccountToUpgrade != null) { if (DefaultAccountToUpgrade.IsOnlineAccount) { throw new Exception("Should be an offline account. This implies it got created but for some reason stayed on this page."); } DefaultAccountToUpgrade.Username = username; DefaultAccountToUpgrade.LocalToken = localToken; DefaultAccountToUpgrade.Token = token; DefaultAccountToUpgrade.AccountId = accountId; DefaultAccountToUpgrade.DeviceId = deviceId; await AccountsManager.Save(DefaultAccountToUpgrade); TelemetryExtension.Current?.TrackEvent("CreatedAccountFromDefault"); // Transfer the settings try { await SavedGradeScalesManager.TransferToOnlineAccountAsync(DefaultAccountToUpgrade.LocalAccountId, DefaultAccountToUpgrade.AccountId); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } // Make sure to update user info for telemetry TelemetryExtension.Current?.UpdateCurrentUser(DefaultAccountToUpgrade); // Remove this popup, and show a new one saying success! // We have to show first before removing otherwise iOS never shows it var parent = Parent; parent.ShowPopup(new SuccessfullyCreatedAccountViewModel(parent) { Username = username, Email = email }); base.RemoveViewModel(); // Trigger a sync (without waiting) so all their content uploads Sync.StartSyncAccount(DefaultAccountToUpgrade); } else { var account = await AccountsManager.CreateAndInitializeAccountAsync(username, localToken, token, accountId, deviceId); if (account != null) { // Take us to the account var dontWait = FindAncestor <MainWindowViewModel>().SetCurrentAccount(account); } } }
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 finishConvertingToOnline(AccountDataItem account) { account.AccountId = _response.AccountId; account.DeviceId = _response.DeviceId; //await login.Account.ConvertToOnline(); await AccountsManager.Save(account); // Transfer the settings try { await SavedGradeScalesManager.TransferToOnlineAccountAsync(account.LocalAccountId, account.AccountId); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } //have it sync, without waiting Sync.StartSyncAccount(account); }
private async System.Threading.Tasks.Task FinishCreateAccount(string username, string localToken, string token, long accountId, int deviceId, string email) { if (DefaultAccountToUpgrade != null) { if (DefaultAccountToUpgrade.IsOnlineAccount) { throw new Exception("Should be an offline account. This implies it got created but for some reason stayed on this page."); } DefaultAccountToUpgrade.Username = username; DefaultAccountToUpgrade.LocalToken = localToken; DefaultAccountToUpgrade.Token = token; DefaultAccountToUpgrade.AccountId = accountId; DefaultAccountToUpgrade.DeviceId = deviceId; DefaultAccountToUpgrade.NeedsToSyncSettings = true; // Make sure we sync settings so things like week info uploads await AccountsManager.Save(DefaultAccountToUpgrade); TelemetryExtension.Current?.TrackEvent("CreatedAccountFromDefault", new Dictionary <string, string>() { { "NewOnlineAccountId", accountId.ToString() } }); // Make sure to update user info for telemetry TelemetryExtension.Current?.UpdateCurrentUser(DefaultAccountToUpgrade); // Transfer the settings try { await SavedGradeScalesManager.TransferToOnlineAccountAsync(DefaultAccountToUpgrade.LocalAccountId, DefaultAccountToUpgrade.AccountId); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } try { // Trigger a sync so all their content uploads DateTime start = DateTime.UtcNow; var syncResult = await Sync.SyncAccountAsync(DefaultAccountToUpgrade); bool retried = false; if (syncResult.Error != null) { // Try one more time retried = true; syncResult = await Sync.SyncAccountAsync(DefaultAccountToUpgrade); } var duration = DateTime.UtcNow - start; Dictionary <string, string> properties = new Dictionary <string, string>() { { "Duration", ((int)Math.Ceiling(duration.TotalSeconds)).ToString() } }; if (retried) { properties["Retried"] = "true"; } if (syncResult.Error != null) { properties["Error"] = syncResult.Error; } TelemetryExtension.Current?.TrackEvent("InitialSyncAfterCreatingAccount", properties); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } // Remove this popup, and show a new one saying success! // We have to show first before removing otherwise iOS never shows it var parent = Parent; parent.ShowPopup(new SuccessfullyCreatedAccountViewModel(parent) { Username = username, Email = email }); base.RemoveViewModel(); } else { var account = await AccountsManager.CreateAndInitializeAccountAsync(username, localToken, token, accountId, deviceId); if (account != null) { // Take us to the account var dontWait = FindAncestor <MainWindowViewModel>().SetCurrentAccount(account); } } }
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(); }