예제 #1
0
        private void DoLogin()
        {
            Dispatcher.Invoke(() =>
            {
                var feature = CurrentGallery?.Feature <IGalleryAccount>();

                if (feature?.CustomLoginPage is CustomLoginPage page)
                {
                    if (!cache_login_page.Contains(page))
                    {
                        page.Unloaded += (e, d) => UpdateAccountButtonText();
                        cache_login_page.Add(page);
                    }

                    Log.Info($"Show gallery {CurrentGallery?.GalleryName}'s custom login page {page.GetType().Name}.");
                    NavigationHelper.NavigationPush(page);
                }
                else
                {
                    Log.Info($"Show default login page for gallery {CurrentGallery?.GalleryName}.");
                    page           = new DefaultLoginPage(CurrentGallery);
                    page.Unloaded += (e, d) => UpdateAccountButtonText();
                    NavigationHelper.NavigationPush(page);
                }
            });
        }
예제 #2
0
        private void ShowMarkPicturesButton_Click(object sender, RoutedEventArgs e)
        {
            if (GridViewer.ViewType == GalleryViewType.Marked)
            {
                return;
            }

            var galleries = (CurrentGallery != null ? new[] { CurrentGallery } : Container.Default.GetExportedValues <Gallery>()).Select(x => x.GalleryName).ToArray();

            var online_mark_feature = CurrentGallery?.Feature <IGalleryMark>();

            var source = new Func <IEnumerable <GalleryItem> >(() => (online_mark_feature?.GetMarkedGalleryItem()) ?? LocalDBContext.Instance.ItemMarks
                                                               .Select(x => new { gallery = galleries.FirstOrDefault(y => y == x.Item.GalleryName), gallery_item = x })
                                                               .Where(x => x.gallery != null)
                                                               .ToArray()//avoid SQL.
                                                               .Select(x => x.gallery_item.Item.ConvertToNormalModel()));


            GalleryTitle        = (CurrentGallery != null ? $"{CurrentGallery.GalleryName}的" : "") + (online_mark_feature != null?"在线":"本地") + "收藏列表";
            GridViewer.ViewType = GalleryViewType.Marked;
            GridViewer.ClearGallery();
            GridViewer.Gallery = null;
            GridViewer.LoadableSourceFactory = source;

            CloseLeftPanel();
        }
예제 #3
0
        private async void AccountButton_Click(object sender, RoutedEventArgs e)
        {
            AccountButton.IsBusy = true;

            var feature = CurrentGallery.Feature <IGalleryAccount>();

            if (feature.IsLoggined)
            {
                AccountButton.BusyStatusDescription = "正在登出中...";

                await Task.Run(() => feature.AccountLogout());

                UpdateAccountButtonText();
                AccountInfoDataContainer.Instance.CleanAccountInfo(CurrentGallery);
                Toast.ShowMessage("登出成功");
                CloseLeftPanel();
            }
            else
            {
                AccountButton.BusyStatusDescription = "正在登入中...";
                await Task.Run(() => DoLogin());
            }

            AccountButton.IsBusy = false;
            AccountButton.BusyStatusDescription = string.Empty;
        }
예제 #4
0
        private async void AccountButton_Click(object sender, RoutedEventArgs e)
        {
            var feature = CurrentGallery.Feature <IGalleryAccount>();

            await Task.Run(() =>
            {
                if (feature.IsLoggined)
                {
                    feature.AccountLogout();
                    Dispatcher.Invoke(() =>
                    {
                        UpdateAccountButtonText();
                        Toast.ShowMessage("登出成功");
                        CloseLeftPanel();
                    });
                }
                else
                {
                    DoLogin();
                }
            });
        }
예제 #5
0
 private void UpdateAccountButtonText()
 {
     AccountButton.Text = CurrentGallery?.Feature <IGalleryAccount>()?.IsLoggined ?? false ? "登出" : "登录";
 }