using Microsoft.Win32; using PDF_Office.Model.CloudDrive; using PDF_Office.ViewModels.HomePanel.CloudDrive; using PDF_Office.ViewModels.HomePanel.CloudDrive.CloudDriveType; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace PDF_Office.Views.HomePanel.CloudDrive { /// /// CloudFilesContent.xaml 的交互逻辑 /// public partial class CloudFilesContent : UserControl { private CloudFilesContentViewModel ViewModel => DataContext as CloudFilesContentViewModel; private List CloudeDrives = new List(); private CloudType cloudType; public CloudFilesContent() { InitializeComponent(); InitCloudDrive(); this.Loaded += usercontrol_Loaded; } private void InitCloudDrive() { var cloudDriveItem = new CloudDriveItem(CloudType.Box); CloudeDrives.Add(cloudDriveItem); cloudDriveItem = new CloudDriveItem(CloudType.DropBox); CloudeDrives.Add(cloudDriveItem); cloudDriveItem = new CloudDriveItem(CloudType.GoogleDrive); CloudeDrives.Add(cloudDriveItem); cloudDriveItem = new CloudDriveItem(CloudType.OneDrive); CloudeDrives.Add(cloudDriveItem); combCloudDisk.ItemsSource = CloudeDrives; combCloudDisk.SelectedIndex = 0; } private void usercontrol_Loaded(object sender, RoutedEventArgs e) { if(ViewModel != null) { ViewModel.CheckDriveUsers(); if (Listusers.ItemsSource == null) Listusers.ItemsSource = CloudFilesContentViewModel.CloudFileUserLists; } } public void SelectCloudTye(CloudType cloudType) { switch (cloudType) { case CloudType.GoogleDrive: cloudType = CloudType.GoogleDrive; break; } } private void Button_Click(object sender, RoutedEventArgs e) { // SelectCloudTye(CloudType.GoogleDrive); } private CloudFileUser CurrentUser; private async void Listusers_SelectionChanged(object sender, SelectionChangedEventArgs e) { var cloudFileUser = Listusers.SelectedItem as CloudFileUser; if(cloudFileUser != null) { CurrentUser = cloudFileUser; if ((CurrentUser.driveItem as GoogleDriveUserItem) != null) { var item = CurrentUser.driveItem as GoogleDriveUserItem; var files = await item.GetDriveFiles(item.Service); ObservableCollection filesList = new ObservableCollection(); foreach (var file in files) { if(file.Name.EndsWith(".pdf") == true) { filesList.Add(file); } } ListvmFiles.ItemsSource = filesList; } } } private async void OpenDocMenuItem_Click(object sender, RoutedEventArgs e) { var menuItem = sender as MenuItem; var item = menuItem.DataContext as GoogleDriveFiles; var googleItem = CurrentUser.driveItem as GoogleDriveUserItem; string docPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); var filename = await googleItem.DownloadGoogleFile(item, docPath); if (filename != null) { string[] filePaths = { filename }; await Task.Delay(3); MainWindow parentWindow = Window.GetWindow(this) as MainWindow; parentWindow.LoadPdfViewer(filePaths); } } } }