ソースを参照

云文档 - 打开文档再退出后,选择云盘检查是否存在已登录的帐户

chenrongqian 2 年 前
コミット
106883b599

+ 20 - 1
PDF Office/ViewModels/HomePanel/CloudDrive/CloudDriveContentViewModel.cs

@@ -14,6 +14,7 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
 
 
         public DelegateCommand<CloudDriveItem> CheckDriveCommand { get; set; }
+        public DelegateCommand<CloudDriveItem> CheckDriveLoginUserCommand { get; set; }
 
         private CloudDriveManager Manager =>CloudDriveManager.GetInstance();
         public event EventHandler<bool> IshowContentHandler;
@@ -23,12 +24,19 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
         {
            
             CheckDriveCommand = new DelegateCommand<CloudDriveItem>(CheckDrive);
-           
+
+            CheckDriveLoginUserCommand = new DelegateCommand<CloudDriveItem>(CheckDriveLoginUser);
 
 
             //    OpenCloudDriveCommand = new DelegateCommand(OpenCloudDrive_Click);
 
+        }
+
+        public void LoadUsers()
+        {
+            var result = Manager.LoadedUsers();
 
+            IshowContentHandler?.Invoke(null, !result);
         }
 
         public async void CheckDrive(CloudDriveItem cloudDriveItem)
@@ -44,6 +52,17 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
             IshowContentHandler?.Invoke(null, !result);
         }
 
+        public async void CheckDriveLoginUser(CloudDriveItem cloudDriveItem)
+        {
+            bool result = false;
+            switch (cloudDriveItem.CloudDiskType)
+            {
+                case CloudType.GoogleDrive:
+                    result = await Manager.LoginUser(cloudDriveItem.CloudDiskType);
+                    break;
+            }
+        }
+
 
 
     }

+ 11 - 0
PDF Office/ViewModels/HomePanel/CloudDrive/CloudDriveManager.cs

@@ -8,6 +8,8 @@ using System.Threading.Tasks;
 
 namespace PDF_Office.ViewModels.HomePanel.CloudDrive
 {
+    //各云盘的管理类
+    //单实例化
     public class CloudDriveManager
     {
         public GoogleDriveManager GoogleDrive;
@@ -45,6 +47,15 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
             return false;
         }
 
+        public bool LoadedUsers()
+        {
+            bool isUsers = false;
+            if(GoogleDrive.GoogleDriveUsers.Count > 0)
+                isUsers = true;
+
+            return isUsers;
+
+        }
         /// <summary>
         /// 移除用户
         /// </summary>

+ 1 - 1
PDF Office/ViewModels/HomePanel/CloudDrive/CloudFilesContentViewModel.cs

@@ -18,7 +18,7 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
         public DelegateCommand CheckDriveUsersCommand { get; set; }
 
         //向外触发
-        public event EventHandler<bool> isFoundUserHandler;
+      //  public event EventHandler<bool> isFoundUserHandler;
         public CloudFilesContentViewModel()
         {
             Manager = new GoogleDriveManager(); 

+ 13 - 9
PDF Office/Views/HomePanel/CloudDrive/CloudDriveContent.xaml.cs

@@ -24,6 +24,7 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
     {
         private List<CloudDriveItem> CloudeDrives = new List<CloudDriveItem>();
         private CloudDriveContentViewModel ViewModel => DataContext as CloudDriveContentViewModel;
+
         public CloudDriveContent()
         {
             InitializeComponent();
@@ -35,7 +36,11 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
         private void CloudDriveContent_Loaded(object sender, RoutedEventArgs e)
         {
             if (ViewModel != null)
+            {
+                ViewModel.IshowContentHandler -= ViewModel_IshowContent;
                 ViewModel.IshowContentHandler += ViewModel_IshowContent;
+                ViewModel.LoadUsers();
+            }
         }
 
         private void ViewModel_IshowContent(object sender, bool e)
@@ -71,14 +76,6 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
             }
         }
 
-        public bool IsShow
-        {
-            get { return (bool)GetValue(IsShowProperty); }
-            set { SetValue(IsShowProperty, value); }
-        }
-        public static readonly DependencyProperty IsShowProperty =
-           DependencyProperty.Register("IsShow", typeof(bool), typeof(CloudDriveContent), new PropertyMetadata(true));
-
         private void combCloudDrive_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
             var cloudDriveItem = combCloudDrive.SelectedItem as CloudDriveItem;
@@ -86,8 +83,15 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
             {
                 ViewModel.CheckDriveCommand.Execute(cloudDriveItem);
             }
+        }
 
-
+        public bool IsShow
+        {
+            get { return (bool)GetValue(IsShowProperty); }
+            set { SetValue(IsShowProperty, value); }
         }
+        public static readonly DependencyProperty IsShowProperty =
+           DependencyProperty.Register("IsShow", typeof(bool), typeof(CloudDriveContent), new PropertyMetadata(true));
+
     }
 }

+ 21 - 29
PDF Office/Views/HomePanel/CloudDrive/CloudFilesContent.xaml.cs

@@ -27,50 +27,42 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
 
         private CloudFilesContentViewModel CloudFilesDrive=>DataContext as CloudFilesContentViewModel;
 
+        private List<CloudDriveItem> CloudeDrives = new List<CloudDriveItem>();
+
         private CloudType cloudType;
         public CloudFilesContent()
         {
             InitializeComponent();
-            list.Add("Box");
-            list.Add("DropBox");
-            list.Add("GoogleDrive");
-            list.Add("OneDrive");
-            ListFolder.ItemsSource = list;
-            // Listusers.ItemsSource = list;
-            //  combCloudDisk.ItemsSource = list;
-            // ListvmFiles.ItemsSource = list;
+
             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);
+
+            ListFolder.ItemsSource = CloudeDrives;
+            ListFolder.SelectedIndex = 0;
+        }
+
         private void usercontrol_Loaded(object sender, RoutedEventArgs e)
         {
           if(CloudFilesDrive != null)
             {
-                CloudFilesDrive.isFoundUserHandler += isFoundUserEvent;
                 CloudFilesDrive.CheckDriveUsers();
             }
         }
 
-        private async void isFoundUserEvent(object sender, bool e)
-        {
-            //isShow = e;
-            //if(isShow)
-            //{
-            //    List<User> GoogleDriveUsers = new List<User>();
-            ////    await Task.Run(async () =>
-            // //   {
-            //        //foreach (var item in CloudFilesDrive.GoogleDrive.GoogleDriveUsers)
-            //        //{
-
-            //        //    GoogleDriveUsers.Add(item.User);
-            //        //}
-            // //   });
-
-                
-            //    Listusers.ItemsSource = GoogleDriveUsers;
-            //}
-        }
-
         public void SelectCloudTye(CloudType cloudType)
         {
             switch (cloudType)