コード例 #1
0
        void OpenFolderImpl(DirectoryInfo folder)
        {
            var userPrefs       = new PersistedUserPreferences();
            var fileNameHandler = new FileNameHandler(userPrefs);

            OpenFolderImpl(n => fileNameHandler.FileMatch(n, includeSmalls: false), folder, fileNameHandler,
                           userPrefs.ShelfName);
            userPrefs.Save();
        }
コード例 #2
0
        public void GetFilePathForEnvironment_ValidEnvironment_CorrectPath(string path, string env, string expected)
        {
            // Arrange
            var handler = new FileNameHandler();

            // Act
            var pathWithEnv = handler.GetFilePathForEnvironment(path, env);

            // Assert
            pathWithEnv.Should().Be(expected);
        }
コード例 #3
0
ファイル: ImageHost.cs プロジェクト: perrrrrrrr/PhotoAlbum
 public ImageHost(FileNameHandler fileNameHandler, string shelfName, FileInfo fileInfo)
 {
     _images            = new Image[3];
     _imageNamesGetters = new Func <FileInfo>[]
     {
         () => FileInfo,
         () => GetSmallFile(),
         () => GetRightFile()
     };
     FileNameHandler = fileNameHandler;
     ShelfName       = shelfName;
     FileInfo        = fileInfo;
 }
コード例 #4
0
        static void Main(string[] args)
        {
            var form = new FormImportPictures();

            if (form.ShowDialog() != DialogResult.OK)
            {
                Console.WriteLine("User has canceled");
                return;
            }
            Console.WriteLine("Processing settings...");
            var userPrefs = new PersistedUserPreferences();
            Func <string, string> largeFileNameMaker = s => new Regex(@"(.*\.)(small|right)\.(jpg|jpeg)$", RegexOptions.IgnoreCase).Replace(s, "$1.$3");
            Func <string, string> smallFileNameMaker = s => new Regex(@"\.(jpg|jpeg)$", RegexOptions.IgnoreCase).Replace(largeFileNameMaker(s), ".small.$1");
            Func <string, string> rightFileNameMaker = s => new Regex(@"\.(jpg|jpeg)$", RegexOptions.IgnoreCase).Replace(largeFileNameMaker(s), ".right.$1");
            var fileNameMaker = new FileNameHandler(
                userPrefs.IncludeFiles,
                userPrefs.ExcludeFolders,
                @"\.small\.((jpeg)|(jpg))$",
                smallFileNameMaker,
                rightFileNameMaker,
                largeFileNameMaker
                );

            var folderWalker = new FolderNavigator(
                userPrefs.FolderImportStart,
                userPrefs.FolderImportEnd,
                fileNameMaker,
                null
                );

            folderWalker.StartingFolder += FolderWalker_StartingFolder;
            folderWalker.EndingFolder   += FolderWalker_EndingFolder;
            folderWalker.FoundAFile     += FolderWalker_FoundAFile;

            folderWalker.Run();
        }
コード例 #5
0
        void OpenFolderImpl(Func <string, bool> fileNameMatcher, DirectoryInfo selectedPath, FileNameHandler fileNameHandler, string shelf)
        {
            _shelvedFiles.Clear();
            buttonUndo.Enabled = false;

            _currentDirectory = selectedPath;
            Text          = _currentDirectory.FullName;
            _currentFiles = new LinkedList <ImageHost>(
                _currentDirectory
                .EnumerateFiles("*", SearchOption.TopDirectoryOnly)
                .Where(f => fileNameMatcher(f.Name))
                .OrderBy(f => f.Name)
                .Select(f => new ImageHost(fileNameHandler, shelf, f))
                );
            _currentFiles.ForEach(ih => ih.Parent = _currentFiles);
            switch (_currentFiles.Count)
            {
            case 0:
                // MessageBox.Show($"There are no pictures to sort in folder {selectedPath}", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                _fileIndex = new NodesTuple(null, null);
                return;

            case 1:
                _fileIndex = LoadPictures(new NodesTuple(_currentFiles.First, _currentFiles.First), 0, 0, noRelease: true);
                break;

            default:
                _fileIndex = LoadPictures(new NodesTuple(_currentFiles.First, _currentFiles.First.Next), 0, 0, noRelease: true);
                break;
            }
            buttonShelfLeft.Image = buttonShelfRight.Image =
                _currentDirectory.Name.Equals(shelf, StringComparison.InvariantCultureIgnoreCase)
                    ? Properties.Resources.SmallUnshelve
                    : Properties.Resources.SmallShelve;
            Focus();
        }
コード例 #6
0
ファイル: ImageHost.cs プロジェクト: perrrrrrrr/PhotoAlbum
        FileInfo GetRightFile()
        {
            var rightFile = new FileInfo(FileNameHandler.RightFileNameMaker(FileInfo.FullName));

            return(rightFile);
        }
コード例 #7
0
ファイル: ImageHost.cs プロジェクト: perrrrrrrr/PhotoAlbum
        FileInfo GetSmallFile()
        {
            var smallFile = new FileInfo(FileNameHandler.SmallFileNameMaker(FileInfo.FullName));

            return(smallFile);
        }