示例#1
0
        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;
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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;
                }
            }
        }