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);
}
}
}
}