private async void RemoveFiles()
        {
            var dialog = new MetroDialogSettings
            {
                AffirmativeButtonText = "OK"
            };
            var result =
                await _mainWindow.ShowMessageAsync("Please confirm", "Are you sure you want to remove this files?", MessageDialogStyle.AffirmativeAndNegative, dialog);

            if (result == MessageDialogResult.Affirmative)
            {
                var selectedLocations = MultiTermLocationCollection.Where(s => s.IsSelected).ToList();
                var controller        = await _mainWindow.ShowProgressAsync("Please wait...", "We are removing selected files");

                controller.SetIndeterminate();

                var locationsToClear = new List <string>();
                controller.SetIndeterminate();

                var selectedMultiTermVersions  = MultiTermVersionsCollection.Where(s => s.IsSelected).ToList();
                var selectedMultiTermLocations = MultiTermLocationCollection.Where(f => f.IsSelected).ToList();
                if (selectedMultiTermVersions.Any())
                {
                    var documentsFolderLocation =
                        await FoldersPath.GetMultiTermFoldersPath(_userName, selectedMultiTermVersions, selectedMultiTermLocations);

                    locationsToClear.AddRange(documentsFolderLocation);
                }

                //to close the message
                //await controller.CloseAsync();
            }
        }
        private async void RemoveFiles()
        {
            var dialog = new MetroDialogSettings
            {
                AffirmativeButtonText = "OK"
            };
            var result =
                await _mainWindow.ShowMessageAsync("Please confirm", "Are you sure you want to remove this files?", MessageDialogStyle.AffirmativeAndNegative, dialog);

            if (result == MessageDialogResult.Affirmative)
            {
                if (!MultiTermIsRunning())
                {
                    var controller = await _mainWindow.ShowProgressAsync("Please wait...", "We are removing selected files");

                    controller.SetIndeterminate();

                    var foldersToClearOrRestore = new List <LocationDetails>();
                    controller.SetIndeterminate();

                    var selectedMultiTermVersions  = MultiTermVersionsCollection.Where(s => s.IsSelected).ToList();
                    var selectedMultiTermLocations = MultiTermLocationCollection.Where(f => f.IsSelected).ToList();
                    if (selectedMultiTermVersions.Any())
                    {
                        var documentsFolderLocation =
                            await FoldersPath.GetMultiTermFoldersPath(_userName, selectedMultiTermVersions, selectedMultiTermLocations);

                        foldersToClearOrRestore.AddRange(documentsFolderLocation);
                    }

                    //save settings
                    _persistence.SaveSettings(foldersToClearOrRestore, false);

                    await Remove.BackupFiles(foldersToClearOrRestore);

                    await Remove.FromSelectedLocations(foldersToClearOrRestore);

                    //to close the message
                    await controller.CloseAsync();
                }
                else
                {
                    await _mainWindow.ShowMessageAsync("MultiTerm is running",
                                                       "Please close MultiTerm in order to remove selected folders.", MessageDialogStyle.Affirmative, dialog);
                }
            }
        }
        private List <LocationDetails> LocationsForSelectedVersions()
        {
            var allFolders                  = _persistence.Load(false);
            var selectedVersions            = MultiTermVersionsCollection.Where(s => s.IsSelected).ToList();
            var locationsForSelectedVersion = new List <LocationDetails>();

            if (selectedVersions.Any())
            {
                foreach (var version in selectedVersions)
                {
                    var locations = allFolders.Where(v => v.Version.Equals(version.DisplayName)).ToList();
                    locationsForSelectedVersion.AddRange(locations);
                }
                return(locationsForSelectedVersion);
            }
            return(allFolders);
        }
示例#4
0
        private async void RepairMultiTerm()
        {
            var dialog = new MetroDialogSettings
            {
                AffirmativeButtonText = "OK"
            };

            if (!MultiTermIsRunning())
            {
                if (Directory.Exists(_packageCache))
                {
                    var selectedVersions = MultiTermVersionsCollection.Where(s => s.IsSelected).ToList();
                    foreach (var selectedVersion in selectedVersions)
                    {
                        RunRepair(selectedVersion);
                    }
                }
            }
            else
            {
                await _mainWindow.ShowMessageAsync(Constants.MultitermRun, Constants.MultitermRepairMessage, MessageDialogStyle.Affirmative, dialog);
            }
        }