From 5f4ac1d3ef90a45a57f477813b192efe40c0d96a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Holger=20B=C3=B6rchers?= Date: Sat, 14 Dec 2019 16:27:17 +0100 Subject: [PATCH] initial commit --- PhotoRenamer.Base/FilesHelper.cs | 26 +++++++++++ PhotoRenamer.Base/PhotoRenamer.Base.csproj | 15 +++++++ PhotoRenamer.File/FileModule.cs | 29 +++++++++++++ PhotoRenamer.File/PhotoRenamer.File.csproj | 14 ++++++ .../ViewModels/ViewAViewModel.cs | 12 ++++++ PhotoRenamer.File/Views/ViewA.xaml | 41 ++++++++++++++++++ PhotoRenamer.File/Views/ViewA.xaml.cs | 13 ++++++ PhotoRenamer.Test/Assets/IMG_3590.CR2 | 0 PhotoRenamer.Test/Assets/NIX.TXT | 0 .../Assets/Subfolder/IMG_3590.JPG | 0 PhotoRenamer.Test/FilesTest.cs | 21 +++++++++ PhotoRenamer.Test/PhotoRenamer.Test.csproj | 39 +++++++++++++++++ PhotoRenamer.sln | 43 +++++++++++++++++++ PhotoRenamer.sln.DotSettings | 2 + PhotoRenamer/App.xaml | 8 ++++ PhotoRenamer/App.xaml.cs | 30 +++++++++++++ PhotoRenamer/PhotoRenamer.csproj | 25 +++++++++++ .../ViewModels/MainWindowViewModel.cs | 16 +++++++ PhotoRenamer/Views/MainWindow.xaml | 18 ++++++++ PhotoRenamer/Views/MainWindow.xaml.cs | 15 +++++++ 20 files changed, 367 insertions(+) create mode 100644 PhotoRenamer.Base/FilesHelper.cs create mode 100644 PhotoRenamer.Base/PhotoRenamer.Base.csproj create mode 100644 PhotoRenamer.File/FileModule.cs create mode 100644 PhotoRenamer.File/PhotoRenamer.File.csproj create mode 100644 PhotoRenamer.File/ViewModels/ViewAViewModel.cs create mode 100644 PhotoRenamer.File/Views/ViewA.xaml create mode 100644 PhotoRenamer.File/Views/ViewA.xaml.cs create mode 100644 PhotoRenamer.Test/Assets/IMG_3590.CR2 create mode 100644 PhotoRenamer.Test/Assets/NIX.TXT create mode 100644 PhotoRenamer.Test/Assets/Subfolder/IMG_3590.JPG create mode 100644 PhotoRenamer.Test/FilesTest.cs create mode 100644 PhotoRenamer.Test/PhotoRenamer.Test.csproj create mode 100644 PhotoRenamer.sln create mode 100644 PhotoRenamer.sln.DotSettings create mode 100644 PhotoRenamer/App.xaml create mode 100644 PhotoRenamer/App.xaml.cs create mode 100644 PhotoRenamer/PhotoRenamer.csproj create mode 100644 PhotoRenamer/ViewModels/MainWindowViewModel.cs create mode 100644 PhotoRenamer/Views/MainWindow.xaml create mode 100644 PhotoRenamer/Views/MainWindow.xaml.cs diff --git a/PhotoRenamer.Base/FilesHelper.cs b/PhotoRenamer.Base/FilesHelper.cs new file mode 100644 index 0000000..1f8c161 --- /dev/null +++ b/PhotoRenamer.Base/FilesHelper.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.IO; + +namespace PhotoRenamer.Base +{ + + public static class FilesHelper + { + private static readonly string[] SupportedFileExtensions = {".jpg", ".cr2", ".mp4"}; + + public static IEnumerable FindSupportedFilesRecursively(string path) + { + var files = Directory.EnumerateFiles(path, "*", SearchOption.AllDirectories); + foreach (var file in files) + { + var fileExt = Path.GetExtension(file); + if(fileExt == null) continue; + foreach (var supportedFileExtension in SupportedFileExtensions) + { + if (fileExt.Equals(supportedFileExtension, StringComparison.InvariantCultureIgnoreCase)) yield return file; + } + } + } + } +} diff --git a/PhotoRenamer.Base/PhotoRenamer.Base.csproj b/PhotoRenamer.Base/PhotoRenamer.Base.csproj new file mode 100644 index 0000000..2147e79 --- /dev/null +++ b/PhotoRenamer.Base/PhotoRenamer.Base.csproj @@ -0,0 +1,15 @@ + + + + netstandard2.0 + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/PhotoRenamer.File/FileModule.cs b/PhotoRenamer.File/FileModule.cs new file mode 100644 index 0000000..2d821bc --- /dev/null +++ b/PhotoRenamer.File/FileModule.cs @@ -0,0 +1,29 @@ +using System; +using PhotoRenamer.File.Views; +using Prism.Ioc; +using Prism.Modularity; +using Prism.Regions; + +namespace PhotoRenamer.File +{ + public class FileModule : IModule + { + private readonly IRegionManager _regionManager; + + public FileModule(IRegionManager regionManager) + { + _regionManager = regionManager; + } + + public void OnInitialized(IContainerProvider containerProvider) + { + + } + + public void RegisterTypes(IContainerRegistry containerRegistry) + { + containerRegistry.RegisterForNavigation(); + _regionManager.RequestNavigate("ContentRegion", new Uri(nameof(ViewA), UriKind.Relative)); + } + } +} \ No newline at end of file diff --git a/PhotoRenamer.File/PhotoRenamer.File.csproj b/PhotoRenamer.File/PhotoRenamer.File.csproj new file mode 100644 index 0000000..d3bf57f --- /dev/null +++ b/PhotoRenamer.File/PhotoRenamer.File.csproj @@ -0,0 +1,14 @@ + + + netcoreapp3.0 + true + PhotoRenamer.File + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + \ No newline at end of file diff --git a/PhotoRenamer.File/ViewModels/ViewAViewModel.cs b/PhotoRenamer.File/ViewModels/ViewAViewModel.cs new file mode 100644 index 0000000..8a9ddee --- /dev/null +++ b/PhotoRenamer.File/ViewModels/ViewAViewModel.cs @@ -0,0 +1,12 @@ +using Prism.Mvvm; +using System.Windows.Input; + +namespace PhotoRenamer.File.ViewModels +{ + public class ViewAViewModel : BindableBase + { + public ICommand SelectFilesCommand { get; } + + public ICommand ClearCommand { get; } + } +} diff --git a/PhotoRenamer.File/Views/ViewA.xaml b/PhotoRenamer.File/Views/ViewA.xaml new file mode 100644 index 0000000..d5ae3f8 --- /dev/null +++ b/PhotoRenamer.File/Views/ViewA.xaml @@ -0,0 +1,41 @@ + + + + +