private async Task PinRecord(PinRecord Record) { BookItem Book = await ItemProcessor.GetBookFromId(Record.Id); if (Book == null) { return; } TaskCompletionSource <bool> TCS = new TaskCompletionSource <bool>(); BookLoader BL = new BookLoader(async(b) => { if (b != null) { string TileId = await PageProcessor.PinToStart(Book); if (!string.IsNullOrEmpty(TileId)) { PM.RegPin(b, TileId, false); } } TCS.SetResult(true); }); BL.Load(Book); await TCS.Task; }
private async void SHUploadComplete(string Id, string AccessToken) { await ControlFrame.Instance.CloseSubView(); HubScriptItem HSI = await PageProcessor.GetScriptFromHub(Id, AccessToken); if (ThisBook.ZItemId != Id) { ThisBook.Update(await ItemProcessor.GetBookFromId(Id)); } if (HSI != null) { OpenHSComment(HSI); } }
private async void CheckTiles() { PinErrored = false; PinManager PM = new PinManager(); await PM.SyncSettings(); if (PM.Policy == PinPolicy.DO_NOTHING) { return; } ActiveItem[] MissingPins = PM.GetLocalPins().Where( x => !Windows.UI.StartScreen.SecondaryTile.Exists(x.Payload) ).ToArray(); if (0 < MissingPins.Length) { switch (PM.Policy) { case PinPolicy.ASK: bool RemoveRecord = true; StringResources stx = StringResources.Load("Message", "AppBar", "ContextMenu"); await Popups.ShowDialog(UIAliases.CreateDialog( string.Format(stx.Str("MissingPins"), MissingPins.Length) , () => RemoveRecord = false , stx.Text("PinToStart", "ContextMenu"), stx.Text("PinPolicy_RemoveMissing", "AppBar") )); if (RemoveRecord) { goto case PinPolicy.REMOVE_MISSING; } goto case PinPolicy.PIN_MISSING; case PinPolicy.PIN_MISSING: foreach (ActiveItem Item in MissingPins) { BookItem Book = await ItemProcessor.GetBookFromId(Item.Desc); if (Book == null) { PinError(); } else { TaskCompletionSource <string> TileId = new TaskCompletionSource <string>(); BookLoader Loader = new BookLoader(async(b) => { TileId.SetResult(b == null ? null : await PageProcessor.PinToStart(b)); }); Loader.Load(Book, true); await TileId.Task; } } break; case PinPolicy.REMOVE_MISSING: PM.RemovePin(MissingPins.Remap(x => x.Desc)); break; } } }