//上一步 protected void ibtnShang_Click(object sender, ImageClickEventArgs e) { PageIndex--; List <Account> list = AccountsManager.GetAllAccounts(); repAccounts(list); }
private async Task <List <AccountDataItem> > GetAllAccounts() { return(await System.Threading.Tasks.Task.Run(async delegate { return await AccountsManager.GetAllAccounts(); })); }
//下一步 protected void ibtnXia_Click(object sender, ImageClickEventArgs e) { pageIndex++; List <Account> list = AccountsManager.GetAllAccounts(); repAccounts(list); }
/// <summary> /// Used for syncing from background task (raw push notification). /// </summary> /// <param name="accountId"></param> /// <returns></returns> public static async System.Threading.Tasks.Task SyncAccountInBackgroundAsync(long accountId) { try { if (accountId == 0) { return; } // First try to grab cached var account = AccountsManager.GetCurrentlyLoadedAccounts().FirstOrDefault(i => i.AccountId == accountId); if (account == null) { account = (await AccountsManager.GetAllAccounts()).FirstOrDefault(i => i.AccountId == accountId); } if (account == null) { return; } var syncResult = await Sync.SyncAccountAsync(account); if (syncResult != null && syncResult.SaveChangesTask != null) { await syncResult.SaveChangesTask.WaitForAllTasksAsync(); } } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } }
protected override async Task PerformWorkAsync(JobParameters @params) { long accountId = @params.Extras.GetLong("AccountId"); if (accountId == 0) { return; } // First try to grab cached var account = AccountsManager.GetCurrentlyLoadedAccounts().FirstOrDefault(i => i.AccountId == accountId); if (account == null) { account = (await AccountsManager.GetAllAccounts()).FirstOrDefault(i => i.AccountId == accountId); } if (account == null) { return; } var syncResult = await Sync.SyncAccountAsync(account); if (syncResult != null && syncResult.SaveChangesTask != null) { await syncResult.SaveChangesTask.WaitForAllTasksAsync(); } }
// 7.Wszystkie konta private void AllAccounts() { Console.Clear(); Console.WriteLine("Wszystkie konta"); Console.WriteLine(); foreach (Account accounts in _accountsManager.GetAllAccounts()) { _printer.Print(accounts); } Console.ReadKey(); }
public async void Handle(BackgroundActivatedEventArgs args) { var taskInstance = args.TaskInstance; taskInstance.Canceled += TaskInstance_Canceled; var deferral = taskInstance.GetDeferral(); try { var accounts = await AccountsManager.GetAllAccounts(); var cancellationToken = _cancellationTokenSource.Token; try { cancellationToken.ThrowIfCancellationRequested(); foreach (var a in accounts) { var data = await AccountDataStore.Get(a.LocalAccountId); cancellationToken.ThrowIfCancellationRequested(); await ClassRemindersExtension.Current?.ResetAllRemindersAsync(a); await RemindersExtension.Current?.ResetReminders(a, data); await TileHelper.UpdateTileNotificationsForAccountAsync(a, data); cancellationToken.ThrowIfCancellationRequested(); } } catch (OperationCanceledException) { } } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } finally { deferral.Complete(); } }
/// <summary> /// Will not throw any exceptions, it'll silently fail if error. Deletes all old data once done. /// </summary> /// <returns></returns> public static async System.Threading.Tasks.Task UpgradeAccounts() { try { // If there's already accounts in the app, do nothing if ((await AccountsManager.GetAllAccounts()).Any()) { return; } await Store.LoadLogins(); foreach (LoginWin login in Store.Logins) { try { await UpgradeAccount(login); } catch (Exception ex) { try { TelemetryExtension.Current?.TrackException(ex); } catch { } } } } catch (Exception ex) { try { TelemetryExtension.Current?.TrackException(ex); } catch { } } finally { await DeleteOldData(); } }
protected void Page_Load(object sender, EventArgs e) { if (Session["adminUser"] != null) { user = Session["adminUser"] as AdminUser; if (!IsPostBack) { List <Account> list = AccountsManager.GetAllAccounts(); repAccounts(list); } } else { this.Response.Write("<script>alert('登陆超时,请从新登陆...');window.location='Default.aspx';</script>"); return; } }
public async void Run(IBackgroundTaskInstance taskInstance) { SharedInitialization.Initialize(); InitializeUWP.Initialize(); taskInstance.Canceled += TaskInstance_Canceled; var deferral = taskInstance.GetDeferral(); try { var accounts = await AccountsManager.GetAllAccounts(); var cancellationToken = _cancellationTokenSource.Token; try { cancellationToken.ThrowIfCancellationRequested(); foreach (var a in accounts) { var data = await AccountDataStore.Get(a.LocalAccountId); cancellationToken.ThrowIfCancellationRequested(); await TileHelper.UpdateTileNotificationsForAccountAsync(a, data); cancellationToken.ThrowIfCancellationRequested(); } } catch (OperationCanceledException) { } } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } // TODO: Re-schedule toast notifications? finally { deferral.Complete(); } }
public async Task HandleNormalLaunchActivation() { // Restore previous login AccountDataItem lastAccount = await AccountsManager.GetLastLogin(); if (lastAccount == null && (await AccountsManager.GetAllAccounts()).Count == 0) { // If no accounts, we create the default account try { var account = await AccountsManager.CreateAndInitializeAccountAsync(AccountsManager.DefaultOfflineAccountUsername, "", null, 0, 0); if (account != null) { lastAccount = account; TelemetryExtension.Current?.TrackEvent("CreatedDefaultOfflineAccount"); } else { TelemetryExtension.Current?.TrackException(new Exception("Tried creating default offline account, but it returned null")); } } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } } if (lastAccount != null && lastAccount.IsAutoLoginPossible && lastAccount.AutoLogin) { await this.SetCurrentAccount(lastAccount); PromoRegistrations.StartPromoLogic(lastAccount); LoggedInFromNormalActivation?.Invoke(this, lastAccount); } else { await this.SetCurrentAccount(null); } }
public static async System.Threading.Tasks.Task UpgradeAccounts() { try { // If there's already accounts in the app, do nothing if (!(await AccountsManager.GetAllAccounts()).Any()) { foreach (string dir in GetDirectoryNames(Files.ACCOUNTS_FOLDER)) { await UpgradeAccount(dir); } // We theoretically should be able to retrieve the old settings // according to this post: https://www.pedrolamas.com/2014/08/14/upgrading-from-the-isolatedstoragesettings-to-applicationdata-localsettings/ // but it's easier to just set the single account as logged in // since the code from that website didn't work perfectly, and not worth the effort var accounts = await AccountsManager.GetAllAccounts(); // If they only had one account, we'll set it as last login // We unfortunately can't transfer the Silverlight settings unfortunately // so this is the best thing we can do. if (accounts.Count == 1) { var onlyAccount = accounts.First(); AccountsManager.SetLastLoginIdentifier(onlyAccount.LocalAccountId); } } } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } // Secondary Silverlight tiles should be automatically disappear, but don't due to a bug DeleteOldData(); }
private async void Initialize() { Accounts = new MyObservableList <AccountDataItem>(await AccountsManager.GetAllAccounts()); // TODO: What if RememberUsername is edited? That's quite a minor case, not worth building something for, but it's potentially a flaw AccountsWithRememberUsername = Accounts.Sublist(i => i.RememberUsername && !i.IsDefaultOfflineAccount); AccountsManager.OnAccountDeleted += new WeakEventHandler <Guid>(AccountsManager_OnAccountDeleted).Handler; var lastLoginLocalId = AccountsManager.GetLastLoginLocalId(); if (lastLoginLocalId != Guid.Empty) { var lastLogin = Accounts.FirstOrDefault(i => i.LocalAccountId == lastLoginLocalId); if (lastLogin != null && lastLogin.RememberUsername && !lastLogin.IsDefaultOfflineAccount) { Username = lastLogin.Username; } } }
public override async void OnReceive(Context context, Intent intent) { var pendingResult = base.GoAsync(); try { var allAccounts = await AccountsManager.GetAllAccounts(); foreach (var account in allAccounts) { // Update/schedule both day-of and day-before await AndroidRemindersExtension.UpdateAndScheduleNotifications(context, account, fromForeground : false); } } catch (Exception ex) { // Avoid throwing here, since otherwise we'll get a "Power Planner has stopped responding" dialog when the user isn't even using the app TelemetryExtension.Current?.TrackException(ex); } pendingResult.Finish(); }
private static async Task ActuallyInitializeChannelsAsync(NotificationManager notificationManager) { if (Build.VERSION.SdkInt < BuildVersionCodes.O) { return; } var accounts = await AccountsManager.GetAllAccounts(); var groups = notificationManager.NotificationChannelGroups; // Delete groups which the account was deleted foreach (var g in groups) { if (!accounts.Any(a => a.LocalAccountId.ToString() == g.Id)) { notificationManager.DeleteNotificationChannelGroup(g.Id); } } // Add/update groups foreach (var a in accounts) { var g = groups.FirstOrDefault(i => i.Id == a.LocalAccountId.ToString()); if (g != null) { // If details are already correct if (g.Name == a.Username) { // Do nothing continue; } } // Otherwise need to create (or update) group g = new NotificationChannelGroup(a.LocalAccountId.ToString(), a.Username); notificationManager.CreateNotificationChannelGroup(g); } // Update/create channels foreach (var a in accounts) { var channelDayBefore = new NotificationChannel(GetChannelIdForDayBefore(a.LocalAccountId), "Day before reminders", NotificationImportance.High) { Description = "Daily reminders that tell you what incomplete tasks or events you have coming up tomorrow.", Group = a.LocalAccountId.ToString(), LightColor = new Color(55, 84, 198), // #3754C6 (a bit more vibrant than my other theme colors) LockscreenVisibility = NotificationVisibility.Public }; channelDayBefore.SetShowBadge(true); channelDayBefore.EnableVibration(true); notificationManager.CreateNotificationChannel(channelDayBefore); var channelDayOf = new NotificationChannel(GetChannelIdForDayOf(a.LocalAccountId), "Day of reminders", NotificationImportance.High) { Description = "Reminders that appear an hour before an incomplete task or event is due.", Group = a.LocalAccountId.ToString(), LightColor = new Color(55, 84, 198), // #3754C6 (a bit more vibrant than my other theme colors) LockscreenVisibility = NotificationVisibility.Public }; channelDayOf.SetShowBadge(true); channelDayOf.EnableVibration(true); notificationManager.CreateNotificationChannel(channelDayOf); } }
private List <Account> getAccounts() { return(AccountsManager.GetAllAccounts()); }
public async void Run(IBackgroundTaskInstance taskInstance) { SharedInitialization.Initialize(); InitializeUWP.Initialize(); taskInstance.Canceled += TaskInstance_Canceled; var deferral = taskInstance.GetDeferral(); try { RawNotification notification = (RawNotification)taskInstance.TriggerDetails; long accountId = UWPPushExtension.GetAccountIdFromRawNotification(notification); if (accountId == 0) { return; } AccountDataItem account = (await AccountsManager.GetAllAccounts()).FirstOrDefault(i => i.AccountId == accountId); if (account == null) { return; } var cancellationToken = _cancellationTokenSource.Token; try { cancellationToken.ThrowIfCancellationRequested(); var result = await Sync.SyncAccountAsync(account); // If succeeded if (result != null && result.Error == null) { // Flag as updated by background task so foreground app can update data AccountDataStore.SetUpdatedByBackgroundTask(); } // Need to wait for the tile/toast tasks to finish before we release the deferral if (result != null && result.SaveChangesTask != null) { await result.SaveChangesTask.WaitForAllTasksAsync(); } } catch (OperationCanceledException) { } // Wait for the calendar integration to complete await AppointmentsExtension.Current?.GetTaskForAllCompleted(); } catch (Exception ex) { TelemetryExtension.Current?.TrackException(ex); } finally { deferral.Complete(); } }