Ejemplo n.º 1
0
        private void DoAddFilesToLibrary()
        {
            var dialogResult = _selectFolderDialog.ShowDialog();

            if (dialogResult != DialogResult.OK)
            {
                return;
            }

            var progressWindow = new ProgressMonitor();
            var progressViewModel = new ProgressMonitorViewModel();

            progressWindow.DataContext = progressViewModel;
            progressViewModel.Title = AddToLibraryTitle;
            progressViewModel.HeaderText = AddToLibraryHeader;
            progressViewModel.StatusText = "Searching for Audio Files...";

            progressWindow.Show();

            var filesAdded = 0;
            var pathToAdd = _selectFolderDialog.SelectedPath;

            try
            {
                _musicLibrary.AddSupportedFilesInDirectory(pathToAdd, true,
                        (o, a) => ImportStep(progressViewModel, a, ref filesAdded),
                        (o, i) => progressWindow.Dispatcher.InvokeAsync(progressWindow.Close));
            }
            catch (Exception ex)
            {
                var errMsg = string.Format("Unable to add directory '{0}': {1}", pathToAdd, ex.Message);
                System.Windows.MessageBox.Show(errMsg, "Error Adding Directory", 
                    System.Windows.MessageBoxButton.OK, System.Windows.MessageBoxImage.Error);
            }
        }
Ejemplo n.º 2
0
        private void ImportStep(ProgressMonitorViewModel viewModel, AudioFileImportedEventArgs fileImportedArgs, ref int filesAdded)
        {
            if (viewModel.MaximumProgressValue != (fileImportedArgs.TotalFilesThisImport * 2))
            {
                viewModel.MaximumProgressValue = (fileImportedArgs.TotalFilesThisImport * 2);
            }

            var percentComplete = (filesAdded / ((float)fileImportedArgs.TotalFilesThisImport / 100)) / 2;

            viewModel.CurrentProgressValue++;

            viewModel.NotificationText = string.Format("{0}%", percentComplete);
            viewModel.StatusText = string.Format(@"{0} '{1}'", fileImportedArgs.Status, Path.GetFileName(fileImportedArgs.FileAdded));

            Interlocked.Increment(ref filesAdded);
        }