Пример #1
0
        private async void AddExcluded()
        {
            var picker = new FolderPicker
            {
                SuggestedStartLocation = PickerLocationId.MusicLibrary,
                ViewMode = PickerViewMode.List
            };

            picker.FileTypeFilter.Add("*");
            var folder = await picker.PickSingleFolderAsync();

            if (folder != null)
            {
                if (!LibraryFolders.Any(f => folder.Path.IsSubPathOf(f.Path)))
                {
                    await new MessageDialog(CommonSharedStrings.SelectionNotInLibraryPrompt).ShowAsync();
                }
                else
                {
                    var folderModel = new FolderModel
                    {
                        Path = folder.Path,
                        Name = folder.Name
                    };
                    PathExclusion.AddExcludedPath(folder.Path);
                    folderModel.RemoveFolderButtonClickedRelayCommand = new RelayCommand <RoutedEventArgs>(e =>
                    {
                        PathExclusion.RemoveExcludedPath(folder.Path);
                        ExcludedFolders.Remove(folderModel);
                    });
                    ExcludedFolders.Add(folderModel);
                }
            }
        }
Пример #2
0
        public void BasicWildcardBothShouldBeTrue()
        {
            var processor = new PathExclusion();

            processor.AddExclusion("*/scripts/*");
            var result = processor.IsExcluded("/test/scripts/test.jpg");

            result.Should().BeTrue();
        }
Пример #3
0
        public void BasicWildcardEndShouldBeFalse()
        {
            var processor = new PathExclusion();

            processor.AddExclusion("/test/*");
            var result = processor.IsExcluded("/yolo/test.png");

            result.Should().BeFalse();
        }
Пример #4
0
        public void BasicTestShouldBeFalse()
        {
            var processor = new PathExclusion();

            processor.AddExclusion("/asdf");
            var result = processor.IsExcluded("/test");

            result.Should().BeFalse();
        }
Пример #5
0
        public void BasicCaseSensitiveTestShouldBeTrue()
        {
            var processor = new PathExclusion();

            processor.AddExclusion("/Test");
            var result = processor.IsExcluded("/test");

            result.Should().BeTrue();
        }
Пример #6
0
        public void BasicWildcardMiddleShouldBeFalse()
        {
            var processor = new PathExclusion();

            processor.AddExclusion("/Project/*.jpg");
            var result = processor.IsExcluded("/Project/test.png");

            result.Should().BeFalse();
        }
Пример #7
0
        /// <summary>
        /// Method for loading library folders.
        /// </summary>
        /// <returns></returns>
        public async Task LoadFoldersAsync()
        {
            // Library
            var libraryFolders = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music);

            foreach (var folder in libraryFolders.Folders)
            {
                LibraryFolders.Add(new FolderModel
                {
                    Path = folder.Path,
                    Name = folder.Name,
                    RemoveFolderButtonClickedRelayCommand = _removeFolderButtonClickedRelayCommand
                });
            }
            var excludedFolders = PathExclusion.GetExcludedPath();

            foreach (var folder in excludedFolders)
            {
                var folderModel = new FolderModel
                {
                    Path = folder,
                    Name = Path.GetDirectoryName(folder)
                };
                folderModel.RemoveFolderButtonClickedRelayCommand = new RelayCommand <RoutedEventArgs>(e =>
                {
                    PathExclusion.RemoveExcludedPath(folder);
                    ExcludedFolders.Remove(folderModel);
                });
                ExcludedFolders.Add(folderModel);
            }
            var accessFolders = await FutureAccessListHelper.Instance.GetAuthroizedStorageItemsAsync();

            foreach (var item in accessFolders)
            {
                var folderModel = new FolderModel
                {
                    Path = item.Item2.Path,
                    Name = item.Item2.Name
                };
                var token = item.Item1;
                folderModel.RemoveFolderButtonClickedRelayCommand = new RelayCommand <RoutedEventArgs>(
                    async(e) =>
                {
                    await FutureAccessListHelper.Instance.RemoveAuthorizedItemAsync(token);
                    AccessFolders.Remove(folderModel);
                });
                AccessFolders.Add(folderModel);
            }
        }