Exemplo n.º 1
0
        public MainViewModel()
        {
            var configuration = Configuration.GetConfiguration("defaultconfig.json");

            Config.CollectionTarget       = configuration.CollectionConnectionString;
            Config.DeletedTarget          = configuration.DeletedConnectionString;
            collectionHistory             = new CollectionHistory();
            deletedHisotry                = new DeleteHisotry();
            deletedHisotry.DeletedHistory = new List <string>();
            MyFiles.Clear();
            history = new DirectoryHistory(FilePath);
            foreach (var logicalDrive in Directory.GetLogicalDrives())
            {
                DirectoriesAndFiles.Add(new DirectoryViewModel(logicalDrive));
            }

            history.HistoryChanged += History_HistoryChanged;

            CompressCollectionCommand = new DelegateCommand(CompressCollection);
            OpenCommand            = new DelegateCommand(Open);
            CompressCommand        = new DelegateCommand(Compress);
            DecompressCommand      = new DelegateCommand(Decompress);
            DeleteFileCommand      = new DelegateCommand(DeleteFile);
            AddToCollectionCommand = new DelegateCommand(AddToCollection);
            MoveBackCommand        = new DelegateCommand(MoveBack, CanMoveBack);
            MoveForwardCommand     = new DelegateCommand(MoveForward, CanMoveForward);
            MoveForwardCommand     = new DelegateCommand(MoveForward, CanMoveForward);
        }
 private void btnAddFolder_Click(object sender, RoutedEventArgs e)
 {
     // Добавить папку.
     if (grid.SelectedIndex == -1)
     {
         try
         {
             string folderPath = new SelectFiles().OpenFolderDialog();
             if (folderPath != null)
             {
                 MyFiles.AddNewFile(folderPath); // Добавить папку в список синхронизаций.
             }
         }
         catch { }
     }
     else
     {
         try
         {
             int    selectedRow = grid.SelectedIndex; // Номер выделенной строки.
             string folderPath  = new SelectFiles().OpenFolderDialog();
             if (folderPath != null)
             {
                 MyFiles.AddPath(selectedRow, folderPath); // Добавляем папку в список обновляемых.
             }
         }
         catch { }
     }
 }
 private void btnAddFile_Click(object sender, RoutedEventArgs e)
 {
     if (grid.SelectedIndex == -1)
     {
         try
         {
             PathToNewFile = new SelectFiles().OpenFileDialog(); // Открыть диалог для выбора нового файла.
             if (PathToNewFile != null)
             {
                 MyFiles.AddNewFile(PathToNewFile); // Добавить новый файл в список синхронизаций.
             }
         }
         catch { }
     }
     else
     {
         try
         {
             int selectedRow = grid.SelectedIndex;                   // Номер выделенной строки.
             PathToNewSyncFile = new SelectFiles().OpenFileDialog(); // Добавляем путь к файлу, который нужно заменить.
             if (PathToNewSyncFile != null)
             {
                 MyFiles.AddPath(selectedRow, PathToNewSyncFile); // Добавляем новый файл в список обновляемых.
             }
         }
         catch { }
     }
 }
        protected async void GetFiles(object sender, EventArgs e)
        {
            var files = await _fileOperations.GetMyFilesAsync();

            MyFiles.DataSource = files;
            MyFiles.DataBind();
        }
        private void Hyperlink_FileEditNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
        {
            // Редактируем файл.
            if (grid.SelectedIndex == -1)
            {
                MessageBox.Show("Выделите строку с удаляемым файлом", "Нет файла для удаления", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            // Что это за пункт: файл или папка
            if (MyFiles.FileList[selectedRow].FileType == 0)        // Это файл.
            {
                PathToNewFile = new SelectFiles().OpenFileDialog(); // Открыть диалог для выбора нового файла.
            }
            else
            {
                PathToNewFile = new SelectFiles().OpenFolderDialog(); // Открыть диалог для выбора папки.
            }

            if (PathToNewFile != null)
            {
                MyFiles.EditFile(selectedRow, PathToNewFile); // Добавить новый файл в список синхронизаций.
            }
        }
        protected async void CommandBtn_Click(Object sender, CommandEventArgs e)
        {
            switch ((String)e.CommandName)
            {
            case "Download":
                var success = await _fileOperations.DownloadFileAsync((String)e.CommandArgument);

                if (success)
                {
                    DownloadSuccess.Visible = true;
                }
                else
                {
                    failMessage.Text     = "Unable to identify file. FileID cannot be an empty string.";
                    DownloadFail.Visible = true;
                }
                break;

            case "Open":
                var files = await _fileOperations.GetMyFilesAsync((String)e.CommandArgument);

                MyFiles.DataSource = files;
                MyFiles.DataBind();
                break;
            }
        }
    private void GetFileStructure()
    {
        string myDir = "";

        System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();
        fbd.RootFolder          = Environment.SpecialFolder.Desktop;
        fbd.ShowNewFolderButton = false;
        fbd.Description         = "Browse to the root directory where the files are stored.";
        if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
        {
            myDir = fbd.SelectedPath;
            try
            {
                TextRootDir = fbd.SelectedPath;
                MyFiles.Clear();
                foreach (var file in Directory.GetFiles(myDir, TextFilter, SearchOption.AllDirectories))
                {
                    MyFiles.Add(file);
                }
            }
            catch (Exception excep)
            {
                MessageBox.Show(excep.Message);
                return;
            }
        }
    }
Exemplo n.º 8
0
        private void Hyperlink_SyncFileInfoNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
        {
            // Посмотреть информацию о файле.
            int selectedRow = grid.SelectedIndex;                        // Номер выделенной строки.
            var tb          = ((Hyperlink)e.OriginalSource).DataContext; // Получаем путь для синхронизации.

            MyFiles.GetSyncFileInfo(tb.ToString());
        }
Exemplo n.º 9
0
        private void Hyperlink_RequestRemoveNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
        {
            // Удаляем из списка путей синхронизаций.
            int selectedRow = grid.SelectedIndex;                        // Номер выделенной строки.
            var tb          = ((Hyperlink)e.OriginalSource).DataContext; // Получаем путь для синхронизации.

            MyFiles.RemovePath(selectedRow, tb.ToString());
            grid.UnselectAll();
        }
Exemplo n.º 10
0
        private void DataGridRow_MouseRightButtonUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            grid.UnselectAll();
            ((DataGridRow)sender).IsSelected = true;

            ContextMenu menu = new ContextMenu();

            MenuItem fileInfo = new MenuItem();

            fileInfo.Header = "Информация о источнике";
            fileInfo.Icon   = new System.Windows.Controls.Image
            {
                Source = new BitmapImage(new Uri("pack://application:,,,/Image/info.ico"))
            };
            fileInfo.Click += FileInfo_Click;
            menu.Items.Add(fileInfo);

            MenuItem openFolder = new MenuItem();

            openFolder.Header = "Открыть в проводнике";
            openFolder.Icon   = new System.Windows.Controls.Image
            {
                Source = new BitmapImage(new Uri("pack://application:,,,/Image/16/openfolder.ico"))
            };
            openFolder.Click += OpenFolder_Click;
            menu.Items.Add(openFolder);

            MenuItem editRoot = new MenuItem();

            editRoot.Header = "Редактировать источник";
            editRoot.Icon   = new System.Windows.Controls.Image
            {
                Source = new BitmapImage(new Uri("pack://application:,,,/Image/edit.ico"))
            };
            editRoot.Click += btnEditRoot_Click;
            menu.Items.Add(editRoot);

            MenuItem clearPathList = new MenuItem();

            clearPathList.Header  = "Очистить список путей";
            clearPathList.ToolTip = "Очистить список путей у выбранного источника.";
            clearPathList.Click  += (s, n) => MyFiles.ClearPathList(grid.SelectedIndex);
            menu.Items.Add(clearPathList);

            MenuItem clearRoot = new MenuItem();

            clearRoot.Header  = "Удалить источник";
            clearRoot.ToolTip = "Удалить выделенный источник из списка.";
            clearRoot.Icon    = new System.Windows.Controls.Image
            {
                Source = new BitmapImage(new Uri("pack://application:,,,/Image/delete.ico"))
            };
            clearRoot.Click += btnRemoveRoot_Click;
            menu.Items.Add(clearRoot);

            menu.IsOpen = true;
        }
Exemplo n.º 11
0
        private void MainWindow_Closing(object sender, CancelEventArgs e)
        {
            MyFiles.SaveSession(); // Сохранить список файлов.

            Sizes windowSizes = new Sizes();

            windowSizes.WinSize.Height = this.Height;
            windowSizes.WinSize.Width  = this.Width;
            windowSizes.WinSize.Left   = this.Left;
            windowSizes.WinSize.Top    = this.Top;
            windowSizes.WinSize.State  = this.WindowState;
            windowSizes.SaveWindowSize();
        }
Exemplo n.º 12
0
 private void btnSelectFile_Click(object sender, RoutedEventArgs e)
 {
     // Указать файл для обновления.
     try
     {
         PathToNewFile = new SelectFiles().OpenFileDialog(); // Открыть диалог для выбора нового файла.
         if (PathToNewFile != null)
         {
             MyFiles.AddNewFile(PathToNewFile); // Добавить новый файл в список синхронизаций.
         }
     }
     catch { }
 }
Exemplo n.º 13
0
        private void Hyperlink_FileRemoveNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
        {
            // Удалить файл из списка.
            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            if (selectedRow == -1)
            {
                MessageBox.Show("Выделите строку с удаляемым файлом", "Нет файла для удаления", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            MyFiles.RemoveFile(selectedRow);
            grid.UnselectAll();
        }
Exemplo n.º 14
0
        private void CompressCollection(object collection)
        {
            if (collection == null)
            {
                throw new ArgumentNullException(nameof(collection));
            }

            foreach (var file in MyFiles)
            {
                Compress(file);
            }
            MyFiles.Clear();
        }
Exemplo n.º 15
0
        private void Hyperlink_FileInfoNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
        {
            // Посмотреть информацию о файле.
            int selectedRow = grid.SelectedIndex;            // Номер выделенной строки.

            if (MyFiles.FileList[selectedRow].FileType == 0) // Это файл.
            {
                MyFiles.GetFileInfo(selectedRow);
            }
            else // Это папка.
            {
                MyFiles.GetFolderInfo(selectedRow);
            }
        }
Exemplo n.º 16
0
 private void menuAddSyncPath_Click(object sender, RoutedEventArgs e)
 {
     // Добавляем путь к файлу для обновления.
     try
     {
         int selectedRow = grid.SelectedIndex;                   // Номер выделенной строки.
         PathToNewSyncFile = new SelectFiles().OpenFileDialog(); // Добавляем путь к файлу, который нужно заменить.
         if (PathToNewSyncFile != null)
         {
             MyFiles.AddPath(selectedRow, PathToNewSyncFile); // Добавляем новый файл в список обновляемых.
         }
     }
     catch { }
 }
    private void InputFiles()
    {
        var files = new List <MyFiles>();
        var file  = new MyFiles {
            Name = "File1.dll", Size = 1215454
        };

        files.Add(file);
        file = new MyFiles {
            Name = "File2.dll", Size = 15544
        };
        files.Add(file);
        ProcessFile(files);
    }
Exemplo n.º 18
0
        private void AddToCollection(object passedFile)
        {
            if (passedFile == null)
            {
                throw new ArgumentNullException(nameof(passedFile));
            }

            if (passedFile is FileViewModel fileViewModel)
            {
                MyFiles.Add(fileViewModel);
                collectionHistory.Collection += MyFiles.Last().FullName;
                collectionHistory.UpdateCollection();
            }
        }
Exemplo n.º 19
0
        private void menuRemoveFile_Click(object sender, RoutedEventArgs e)
        {
            // Удалить файл из списка.
            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            //int selectingRows = grid.SelectedItems.Count; // Число выделенных строк.


            if (selectedRow == -1)
            {
                MessageBox.Show("Выделите строку с удаляемым файлом", "Нет файла для удаления", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            MyFiles.RemoveFile(selectedRow);
        }
Exemplo n.º 20
0
        private void FileInfo_Click(object sender, RoutedEventArgs e)
        {
            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            switch (MyFiles.FileList[selectedRow].FileType)
            {
            case 0:
                MyFiles.GetFileInfo(selectedRow);
                break;

            case 1:
                MyFiles.GetFolderInfo(selectedRow);
                break;
            }
        }
Exemplo n.º 21
0
        private void btnAddSyncFolder_Click(object sender, RoutedEventArgs e)
        {
            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            if (selectedRow == -1)
            {
                MessageBox.Show("Вы не выбрали источник!\nПожалуйста, выберите источник, а затем добавляйте папку в список адресатов!",
                                "Не выбран источник",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            string folderPath = new SelectFiles().OpenFolderDialog();

            MyFiles.AddPath(selectedRow, folderPath); // Добавляем папку в список адресатов.
        }
Exemplo n.º 22
0
        private void ExploreFiles(TreeViewItem item)
        {
            var directoryInfo = (DirectoryInfo)null;

            if (item.Tag is DirectoryInfo)
            {
                directoryInfo = (DirectoryInfo)item.Tag;
            }
            if (ReferenceEquals(directoryInfo, null))
            {
                return;
            }
            MyFiles.Clear();
            FolderName = directoryInfo.Name;
            AddDataToCollection(directoryInfo.GetFiles(), item, "");
            AddDataToCollection(directoryInfo.GetDirectories(), item, "");
        }
Exemplo n.º 23
0
        private void gridSelectedRow_DoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            switch (MyFiles.FileList[selectedRow].FileType)
            {
            case 0:
                PathToNewSyncFile = new SelectFiles().OpenSaveFileDialog(MyFiles.FileList[selectedRow].FileName); // Добавляем путь к источнику.
                MyFiles.AddPath(selectedRow, PathToNewSyncFile);                                                  // Добавляем новый файл в список обновляемых.
                break;

            case 1:
                string folderPath = new SelectFiles().OpenFolderDialog();
                MyFiles.AddPath(selectedRow, folderPath);     // Добавляем папку в список адресатов.
                break;
            }
        }
Exemplo n.º 24
0
        private void btnRemoveRoot_Click(object sender, RoutedEventArgs e)
        {
            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            if (selectedRow == -1)
            {
                MessageBox.Show("Вы не выбрали источник!\nПожалуйста, выберите источник, а затем удаляйте его!",
                                "Не выбран источник",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (MessageBox.Show("ВНИМАНИЕ!\nПри удалении источника будут удалены и пути для него.\nВы уверены?", "Вы уверены?", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.Yes)
            {
                MyFiles.RemoveFile(selectedRow);
            }
        }
Exemplo n.º 25
0
        private void btnEditFile_Click(object sender, RoutedEventArgs e)
        {
            // Редактировать файл в списке.
            if (grid.SelectedIndex == -1)
            {
                MessageBox.Show("Выделите строку с удаляемым файлом", "Нет файла для удаления", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            PathToNewFile = String.Empty;
            PathToNewFile = new SelectFiles().OpenFileDialog(); // Открыть диалог для выбора нового файла.
            if (PathToNewFile != String.Empty)
            {
                MyFiles.EditFile(selectedRow, PathToNewFile); // Добавить новый файл в список синхронизаций.
            }
        }
Exemplo n.º 26
0
        private void Empty_DoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            /*
             * Добавление файла или добавить путь синхронизации, если строка выделена.
             */

            // Указать файл для обновления.
            if (grid.SelectedIndex == -1)
            {
                try
                {
                    PathToNewFile = new SelectFiles().OpenFolderDialog(); // Открыть диалог для выбора нового файла.
                    if (PathToNewFile != null)
                    {
                        MyFiles.AddNewFile(PathToNewFile); // Добавить новый файл в список синхронизаций.
                    }
                }
                catch { }
            }
            else
            {
                // Добавляем путь к файлу для обновления.
                try
                {
                    int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

                    /*if (MyFiles.FileList[selectedRow].FileType == 0) // Это файл.
                     * {
                     *  PathToNewSyncFile = new SelectFiles().OpenSaveFileDialog(MyFiles.FileList[selectedRow].FileName); // Добавляем путь к файлу, который нужно заменить.
                     * }
                     * else
                     * {
                     *  PathToNewSyncFile = new SelectFiles().OpenFolderDialog(); // Открыть диалог для выбора папки.
                     * }*/
                    PathToNewSyncFile = new SelectFiles().OpenFolderDialog(); // Открыть диалог для выбора папки.
                    if (PathToNewSyncFile != null)
                    {
                        MyFiles.AddPath(selectedRow, PathToNewSyncFile += "\\" + MyFiles.FileList[selectedRow].FileName); // Добавляем новый файл в список обновляемых.
                    }
                    grid.SelectedIndex = -1;                                                                              // Снимаем выделение строки.
                }
                catch { }
            }
        }
Exemplo n.º 27
0
        private void Hyperlink_RequestEditNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
        {
            // Редактируем путь синхронизации.
            int selectedRow = grid.SelectedIndex;                        // Номер выделенной строки.
            var tb          = ((Hyperlink)e.OriginalSource).DataContext; // Получаем путь для синхронизации.

            if (MyFiles.FileList[selectedRow].FileType == 0)             // Это файл.
            {
                PathToNewSyncFile = new SelectFiles().OpenFileDialog();  // Открыть диалог для выбора нового файла.
            }
            else
            {
                PathToNewSyncFile = new SelectFiles().OpenFolderDialog(); // Открыть диалог для выбора папки.
            }

            if (PathToNewSyncFile != null)
            {
                MyFiles.EditPath(selectedRow, tb.ToString(), PathToNewSyncFile); // Изменить путь синхронизации.
            }
        }
Exemplo n.º 28
0
        private void text_PreviewDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                // Note that you can have more than one file.
                string[] files = (string[])e.Data.GetData(DataFormats.FileDrop, false);

                // Assuming you have one file that you care about, pass it off to whatever
                // handling code you have defined.
                foreach (string file in files)
                {
                    FileInfo ff = new FileInfo(file);
                    if (grid.SelectedIndex == -1)
                    {
                        try
                        {
                            PathToNewFile = ff.FullName; // Путь к файлу.
                            if (PathToNewFile != null)
                            {
                                MyFiles.AddNewFile(PathToNewFile); // Добавить новый файл в список синхронизаций.
                            }
                        }
                        catch { }
                    }
                    else
                    {
                        try
                        {
                            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.
                            PathToNewSyncFile = ff.FullName;
                            if (PathToNewSyncFile != null)
                            {
                                MyFiles.AddPath(selectedRow, PathToNewSyncFile); // Добавляем новый файл в список обновляемых.
                            }
                        }
                        catch { }
                    }
                    //text.Text += ff.FullName + "\n"; // Можно вытащить путь.
                }
            }
        }
Exemplo n.º 29
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            var senderName = (sender as Button).Name;

            switch (senderName)
            {
            case "ButtonOK":
            {
                string s_key   = TextBoxYuan.Text.Trim();
                string s_value = TextBoxNew.Text.Trim();
                if (string.IsNullOrEmpty(s_key) || string.IsNullOrEmpty(s_value))
                {
                    GlobalTool.BarMsg("请输入内容");
                    return;
                }

                if (GlobalTool.AllDic.ContainsKey(s_key))
                {
                    GlobalTool.AllDic[s_key] = s_value;
                }
                else
                {
                    GlobalTool.AllDic.Add(s_key, s_value);
                }

                JavaScriptSerializer serializer = new JavaScriptSerializer();
                string json = serializer.Serialize(GlobalTool.AllDic);
                MyFiles.WriteLocalTrans(json);

                GlobalTool.CloseDialogLearn();
                GlobalTool.BarMsg("添加成功");
                GlobalTool.GetDic();
            }
            break;

            case "ButtonCancel":
                GlobalTool.CloseDialogLearn();
                break;
            }
        }
Exemplo n.º 30
0
        private void btnAddSyncFile_Click(object sender, RoutedEventArgs e)
        {
            int selectedRow = grid.SelectedIndex; // Номер выделенной строки.

            if (selectedRow == -1)
            {
                MessageBox.Show("Вы не выбрали источник!\nПожалуйста, выберите источник, а затем добавляйте файл в список адресатов!",
                                "Не выбран источник",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            if (MyFiles.FileList[selectedRow].FileType == 1)
            {
                MessageBox.Show("Нельзя добавлять файл к источнику типа 'Папка'!\nПопробуйте указать папку.",
                                "Не верно выбран источник",
                                MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }

            PathToNewSyncFile = new SelectFiles().OpenSaveFileDialog(MyFiles.FileList[selectedRow].FileName); // Добавляем путь к источнику.
            MyFiles.AddPath(selectedRow, PathToNewSyncFile);                                                  // Добавляем новый файл в список обновляемых.
        }