Selaa lähdekoodia

云文档 - 移除帐号

chenrongqian 2 vuotta sitten
vanhempi
commit
824471dc1d

+ 24 - 6
PDF Office/ViewModels/HomePanel/CloudDrive/CloudDriveManager.cs

@@ -151,15 +151,33 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
         /// <summary>
         /// 移除用户
         /// </summary>
-        public async Task<bool> RemoveUser()
+        public async Task<bool> RemoveUser(UserBaseItem user)
         {
-            GoogleDriveUserItem userIttem = null;
-            switch (cloudType)
+            bool result = false;
+            switch (user.cloudType)
             {
-                case CloudType.OneDrive:
-                    return await GoogleDrive.RemoveUser(userIttem);
+                case CloudType.GoogleDrive:
+                    {
+                        var googleUser = user as GoogleDriveUserItem;
+                        if(googleUser != null)
+                        {
+                            result = await GoogleDrive.RemoveUser(googleUser);
+                        }
+                    }
+                    break;
+                   
+                case CloudType.DropBox:
+                    {
+                        var dropBoxUser = user as DropbBoxUserItem;
+                        if (dropBoxUser != null)
+                        {
+                            result = await DropbBox.RemoveUser(dropBoxUser);
+                        }
+                    }
+                    break;
             }
-            return false;
+
+            return result;
         }
 
         /// <summary>

+ 7 - 2
PDF Office/ViewModels/HomePanel/CloudDrive/CloudDriveType/DropbBoxManager.cs

@@ -38,9 +38,14 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive.CloudDriveType
         /// <summary>
         /// 移除用户
         /// </summary>
-        public void RemoveUser()
+        public async Task<bool> RemoveUser(DropbBoxUserItem user)
         {
-
+            var result = await user.RemoveUser();
+            if(result == true)
+            {
+                Cloud.CloudLists.Remove(user);
+            }
+            return result;
         }
 
         /// <summary>

+ 10 - 0
PDF Office/ViewModels/HomePanel/CloudDrive/CloudDriveType/DropbBoxUserItem.cs

@@ -70,8 +70,18 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive.CloudDriveType
             return FileList;
         }
 
+        public async Task<bool> RemoveUser()
+        {
+            bool result = true;
+            if (result == true)
+            {
+                MetadataList.Clear();
+            }
 
 
+            return result;
+        }
+
         public async Task<string> Download(string name, string savePath)
         {
             Metadata metadata = null;

+ 6 - 1
PDF Office/ViewModels/HomePanel/CloudDrive/CloudDriveType/GoogleDriveManager.cs

@@ -94,7 +94,12 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive.CloudDriveType
 
         public async Task<bool> RemoveUser(GoogleDriveUserItem userIttem)
         {
-           return await userIttem.RemoveUser();
+            var result = await userIttem.RemoveUser();
+            if (result == true)
+            {
+                Cloud.CloudLists.Remove(userIttem);
+            }
+            return result;
         }
 
         #endregion

+ 24 - 16
PDF Office/ViewModels/HomePanel/CloudDrive/CloudFilesContentViewModel.cs

@@ -41,10 +41,13 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
         #endregion
 
         #region  事件
+        /// <summary>
+        /// 下载并打开文件
+        /// </summary>
         public DelegateCommand<FileOperation> OpenFileCommand { get; set; }
         public DelegateCommand<FileOperation> OpenFolderCommand { get; set; }
-        public DelegateCommand CheckDriveUsersCommand { get; set; }
         public DelegateCommand<CloudBoxItem> LoginCommand { get; set; }
+        public DelegateCommand<UserBaseItem> RemoveUserCommand { get; set; }
 
         public DelegateCommand<FolderBaseItem> SelectedFolderCommand { get; set; }
         #endregion
@@ -55,15 +58,24 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
             InitCommand();
         }
 
+
+        private void InitVariable()
+        {
+
+        }
+
         private void InitCommand()
         {
-          //  OpenFileCommand = new DelegateCommand(OpenCloudDrive_Click);
             OpenFileCommand = new DelegateCommand<FileOperation>(OpenFile);
             OpenFolderCommand = new DelegateCommand<FileOperation>(OpenFolder);
             LoginCommand = new DelegateCommand<CloudBoxItem>(LoginUser);
+            RemoveUserCommand = new DelegateCommand<UserBaseItem>(RemoveUser);
             SelectedFolderCommand = new DelegateCommand<FolderBaseItem>(SelectedFolder_Command);
         }
 
+        /// <summary>
+        /// 在文件夹列表,选择文件夹
+        /// </summary>
         private void SelectedFolder_Command(FolderBaseItem obj)
         {
            if(obj != null)
@@ -97,10 +109,6 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
             }
         }
 
-        private void InitVariable()
-        {
-           
-        }
 
         public async void CheckDrive(CloudBoxItem cloudDriveItem)
         {
@@ -109,14 +117,6 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
 
         #region 云盘公用接口
 
-        public async void CheckDriveUsers()
-        {
-            //   var result = await GetHistoryUser();
-            //    isFoundUserHandler?.Invoke(null, result);
-         // await  GoogleDrive.LoginUderCount();
-
-        }
-
         #endregion
         public void OpenCloudDrive_Click()
         {
@@ -138,9 +138,17 @@ namespace PDF_Office.ViewModels.HomePanel.CloudDrive
         /// <summary>
         /// 移除用户
         /// </summary>
-        public void RemoveUser()
+        public async void RemoveUser(UserBaseItem user)
         {
-
+            if(user != null)
+            {
+              var result =  await CloudManager.RemoveUser(user);
+                if(result)
+                {
+                    FilesList.Clear();
+                    FolderItems.Clear();
+                }
+            }
         }
 
         /// <summary>

+ 0 - 1
PDF Office/ViewModels/HomePanel/HomeCloudContentViewModel.cs

@@ -31,7 +31,6 @@ namespace PDF_Office.ViewModels.HomePanel
                     case CloudType.DropBox:
                         break;
                     case CloudType.GoogleDrive:
-                        //    isSccuess = await googleDriveViewModel.LoginUser();
                         break;
                     case CloudType.OneDrive:
                         break;

+ 25 - 3
PDF Office/Views/HomePanel/CloudDrive/CloudFilesContent.xaml

@@ -29,16 +29,37 @@
                     </Path>
                 </MenuItem.Icon>
             </MenuItem>
-   
+        </ContextMenu>
 
+        <ContextMenu x:Key="UserFlyoutMenu" FontSize="14">
+            <ContextMenu.ItemContainerStyle>
+                <Style TargetType="MenuItem">
+                    <Setter Property="Padding" Value="0,7,0,7"/>
+                    <Setter Property="VerticalContentAlignment" Value="Center"/>
+                </Style>
+            </ContextMenu.ItemContainerStyle>
+            <MenuItem Name="OpenDocMenuItem" Header="移除帐户" IsEnabled="True" Click="RemoveUserMenuItem_Click">
+                <MenuItem.Icon>
+                    <Path Fill="Black" Data="M9 0H3V2H0V3H1V14H11V3H12V2H9V0ZM2 13V3H3H4H8H9H10V13H2ZM8 2V1H4V2H8ZM4 12V4H3V12H4ZM6.5 4V12H5.5V4H6.5ZM9 12V4H8V12H9Z">
+                        <Path.RenderTransform>
+                            <TranslateTransform X="5.0000" Y="0"/>
+                        </Path.RenderTransform>
+                    </Path>
+                </MenuItem.Icon>
+            </MenuItem>
         </ContextMenu>
 
+
         <Style x:Key="itemstyle" TargetType="{x:Type ListViewItem}">
             <EventSetter Event="PreviewMouseRightButtonDown"
                              Handler="ListViewItem_PreviewMouseRightButtonDown"/>
             <EventSetter Event="PreviewMouseDoubleClick"
                              Handler="ListViewItem_PreviewMouseDoubleClick"/>
         </Style>
+        <Style x:Key="useritemstyle" TargetType="{x:Type ListViewItem}">
+            <EventSetter Event="PreviewMouseRightButtonDown"
+                             Handler="userItem_PreviewMouseRightButtonDown"/>
+        </Style>
     </UserControl.Resources>
     <Grid>
         <Grid.RowDefinitions>
@@ -98,13 +119,14 @@
                 <ColumnDefinition/>
             </Grid.ColumnDefinitions>
 
-            <ListView x:Name="Listusers" Width="220"  SelectionChanged="Listusers_SelectionChanged" VerticalAlignment="Top">
+            <ListView x:Name="Listusers" Width="220"  SelectionChanged="Listusers_SelectionChanged" VerticalAlignment="Top"
+                      ItemContainerStyle="{StaticResource useritemstyle}"
+                      >
                 <ListView.ItemTemplate>
                     <DataTemplate>
                         <Grid Height="50" >
                             <TextBlock VerticalAlignment="Center" Text="{Binding userInfo.UserAccount}"/>
                         </Grid>
-                       
                     </DataTemplate>
                 </ListView.ItemTemplate>
             </ListView>

+ 36 - 9
PDF Office/Views/HomePanel/CloudDrive/CloudFilesContent.xaml.cs

@@ -28,10 +28,9 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
      
         private CloudFilesContentViewModel ViewModel => DataContext as CloudFilesContentViewModel;
         private ContextMenu FlyoutMenu;
+        private ContextMenu UserFlyoutMenu;
         private List<CloudBoxItem> CloudeDrives = new List<CloudBoxItem>();
-        private List<string> pathFolder = new List<string>();
 
-        private CloudType cloudType;
         public CloudFilesContent()
         {
             InitializeComponent();
@@ -46,13 +45,14 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
             combCloudDrive.ItemsSource = CloudeDrives;
             combCloudDrive.SelectedIndex = 0;
             FlyoutMenu = Resources["FlyoutMenu"] as ContextMenu;
+            UserFlyoutMenu = Resources["UserFlyoutMenu"] as ContextMenu;
+            
         }
 
         private void usercontrol_Loaded(object sender, RoutedEventArgs e)
         {
           if(ViewModel != null)
             {
-                ViewModel.CheckDriveUsers();
                 if (Listusers.ItemsSource == null)
                     Listusers.ItemsSource = Cloud.CloudLists;
             }
@@ -83,9 +83,7 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
                             ViewModel?.OpenFolderCommand?.Execute(fileOperation);
                         }
                         break;
-
                 }
-               
             }
         }
 
@@ -110,6 +108,19 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
 
         }
 
+        private void RemoveUserMenuItem_Click(object sender, RoutedEventArgs e)
+        {
+            var menuItem = sender as MenuItem;
+            if (menuItem == null)
+                return;
+
+            var user = menuItem.DataContext as UserBaseItem;
+            if (user != null)
+            {
+                ViewModel?.RemoveUserCommand?.Execute(user);
+
+            }
+        }
         private void SelectListFolder_Click(object sender, MouseButtonEventArgs e)
         {
             var folderItem = (sender as FrameworkElement).DataContext as FolderBaseItem;
@@ -117,17 +128,18 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
             {
                 ViewModel?.SelectedFolderCommand?.Execute(folderItem);
             }
-           
+
         }
 
         private void ListViewItem_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
         {
             var frame = sender as FrameworkElement;
-            if(frame != null && frame.DataContext as FilesBaseItem != null)
+            if (frame != null && frame.DataContext as FilesBaseItem != null)
             {
                 var file = frame.DataContext as FilesBaseItem;
-                if ((file == null || file.IsFolder == false ) && FlyoutMenu != null)
+                if ((file == null || file.IsFolder == false) && FlyoutMenu != null)
                 {
+                    FlyoutMenu.DataContext = file;
                     FlyoutMenu.IsOpen = true;
                 }
             }
@@ -150,9 +162,24 @@ namespace PDF_Office.Views.HomePanel.CloudDrive
                         FileOperation fileOperation = new FileOperation(cloudFileUser, file);
                         ViewModel?.OpenFolderCommand?.Execute(fileOperation);
                     }
-                      
+
                 }
             }
         }
+
+        private void userItem_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
+        {
+            var frame = sender as FrameworkElement;
+            if (frame != null && frame.DataContext as UserBaseItem != null)
+            {
+                var user = frame.DataContext as UserBaseItem;
+                if (user != null && UserFlyoutMenu != null)
+                {
+                    UserFlyoutMenu.DataContext = user;
+                    UserFlyoutMenu.IsOpen = true;
+                }
+            }
+        }
+
     }
 }