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); } }); }
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(); }
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; }
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(); } }); }
private void UpdateAccountButtonText() { AccountButton.Text = CurrentGallery?.Feature <IGalleryAccount>()?.IsLoggined ?? false ? "登出" : "登录"; }