From 4ac99480fa9a6a0be13203aa7dc407930bc58dd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81d=C3=A1m=20Kov=C3=A1cs?= Date: Mon, 23 May 2022 18:30:39 +0200 Subject: [PATCH] ContentAccess namespace refactor --- .../Services/ItemPreviewService.cs | 1 + .../ItemManipulationUserCommandHandlerService.cs | 6 +++++- .../NavigationUserCommandHandlerService.cs | 1 + .../FileTime.App.Core/ViewModels/TabViewModel.cs | 1 + .../{Services => ContentAccess}/IContentProvider.cs | 2 +- .../FileTime.Core.Abstraction.csproj | 4 ---- src/Core/FileTime.Core.Abstraction/Models/IItem.cs | 1 + .../ContentProviderBase.cs | 3 +-- .../FileTime.Core.ContentAccess.csproj | 13 +++++++++++++ src/Core/FileTime.Core.Models/Container.cs | 1 + src/Core/FileTime.Core.Models/Element.cs | 1 + .../TimelessContentProvider.cs | 1 + src/FileTime.sln | 7 +++++++ src/GuiApp/Avalonia/FileTime.GuiApp.App/App.axaml | 2 +- .../Avalonia/FileTime.GuiApp.App/App.axaml.cs | 2 +- src/GuiApp/Avalonia/FileTime.GuiApp.App/Program.cs | 2 +- src/GuiApp/Avalonia/FileTime.GuiApp.App/Startup.cs | 3 ++- .../ViewModels/GuiAppState.cs | 3 ++- .../ViewModels/MainWindowViewModel.cs | 1 + src/Library/InitableService/InitableExtensions.cs | 5 +++-- .../ILocalContentProvider.cs | 1 + .../FileTime.Providers.Local.csproj | 1 + .../LocalContentProvider.cs | 1 + src/Providers/FileTime.Providers.Local/Startup.cs | 1 + 24 files changed, 49 insertions(+), 15 deletions(-) rename src/Core/FileTime.Core.Abstraction/{Services => ContentAccess}/IContentProvider.cs (96%) rename src/Core/{FileTime.Core.Services => FileTime.Core.ContentAccess}/ContentProviderBase.cs (97%) create mode 100644 src/Core/FileTime.Core.ContentAccess/FileTime.Core.ContentAccess.csproj diff --git a/src/AppCommon/FileTime.App.Core/Services/ItemPreviewService.cs b/src/AppCommon/FileTime.App.Core/Services/ItemPreviewService.cs index dcdff1e..dd0bf4e 100644 --- a/src/AppCommon/FileTime.App.Core/Services/ItemPreviewService.cs +++ b/src/AppCommon/FileTime.App.Core/Services/ItemPreviewService.cs @@ -2,6 +2,7 @@ using System.Reactive.Linq; using FileTime.App.Core.ViewModels; using FileTime.App.Core.ViewModels.ItemPreview; using FileTime.Core.Models; +using InitableService; using Microsoft.Extensions.DependencyInjection; namespace FileTime.App.Core.Services; diff --git a/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/ItemManipulationUserCommandHandlerService.cs b/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/ItemManipulationUserCommandHandlerService.cs index 107c059..705f460 100644 --- a/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/ItemManipulationUserCommandHandlerService.cs +++ b/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/ItemManipulationUserCommandHandlerService.cs @@ -25,6 +25,7 @@ public class ItemManipulationUserCommandHandlerService : UserCommandHandlerServi private readonly ICommandScheduler _commandScheduler; private readonly BindedCollection? _markedItems; private PointInTime _currentPointInTime; + private IContainer? _currentLocation; public ItemManipulationUserCommandHandlerService( IAppState appState, @@ -44,6 +45,7 @@ public class ItemManipulationUserCommandHandlerService : UserCommandHandlerServi _currentPointInTime = null!; SaveSelectedTab(t => _selectedTab = t); + SaveCurrentLocation(l => _currentLocation = l); SaveCurrentSelectedItem(i => _currentSelectedItem = i); SaveCurrentPointInTime(t => _currentPointInTime = t); @@ -130,7 +132,9 @@ public class ItemManipulationUserCommandHandlerService : UserCommandHandlerServi //TODO: message on empty result var newContainerName = containerNameInput.Value; - var command = new CreateContainerCommand(); + if (_currentLocation?.FullName is null || newContainerName is null) return; + + var command = new CreateContainerCommand(_currentLocation.FullName, newContainerName, _timelessContentProvider); await _commandScheduler.AddCommand(command); } } \ No newline at end of file diff --git a/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/NavigationUserCommandHandlerService.cs b/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/NavigationUserCommandHandlerService.cs index e2da064..918b8e3 100644 --- a/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/NavigationUserCommandHandlerService.cs +++ b/src/AppCommon/FileTime.App.Core/Services/UserCommandHandler/NavigationUserCommandHandlerService.cs @@ -6,6 +6,7 @@ using FileTime.Core.Models; using FileTime.Core.Services; using FileTime.Core.Timeline; using FileTime.Providers.Local; +using InitableService; using Microsoft.Extensions.DependencyInjection; namespace FileTime.App.Core.Services.UserCommandHandler; diff --git a/src/AppCommon/FileTime.App.Core/ViewModels/TabViewModel.cs b/src/AppCommon/FileTime.App.Core/ViewModels/TabViewModel.cs index 7f02b0b..b912572 100644 --- a/src/AppCommon/FileTime.App.Core/ViewModels/TabViewModel.cs +++ b/src/AppCommon/FileTime.App.Core/ViewModels/TabViewModel.cs @@ -7,6 +7,7 @@ using FileTime.App.Core.Services; using FileTime.App.Core.ViewModels.ItemPreview; using FileTime.Core.Models; using FileTime.Core.Services; +using InitableService; using Microsoft.Extensions.DependencyInjection; using MvvmGen; diff --git a/src/Core/FileTime.Core.Abstraction/Services/IContentProvider.cs b/src/Core/FileTime.Core.Abstraction/ContentAccess/IContentProvider.cs similarity index 96% rename from src/Core/FileTime.Core.Abstraction/Services/IContentProvider.cs rename to src/Core/FileTime.Core.Abstraction/ContentAccess/IContentProvider.cs index 26169e3..d2b957f 100644 --- a/src/Core/FileTime.Core.Abstraction/Services/IContentProvider.cs +++ b/src/Core/FileTime.Core.Abstraction/ContentAccess/IContentProvider.cs @@ -3,7 +3,7 @@ using FileTime.Core.Enums; using FileTime.Core.Models; using FileTime.Core.Timeline; -namespace FileTime.Core.Services; +namespace FileTime.Core.ContentAccess; public interface IContentProvider : IContainer, IOnContainerEnter { diff --git a/src/Core/FileTime.Core.Abstraction/FileTime.Core.Abstraction.csproj b/src/Core/FileTime.Core.Abstraction/FileTime.Core.Abstraction.csproj index caad2a1..473be95 100644 --- a/src/Core/FileTime.Core.Abstraction/FileTime.Core.Abstraction.csproj +++ b/src/Core/FileTime.Core.Abstraction/FileTime.Core.Abstraction.csproj @@ -24,8 +24,4 @@ - - - - diff --git a/src/Core/FileTime.Core.Abstraction/Models/IItem.cs b/src/Core/FileTime.Core.Abstraction/Models/IItem.cs index 6bc78bc..32b19bf 100644 --- a/src/Core/FileTime.Core.Abstraction/Models/IItem.cs +++ b/src/Core/FileTime.Core.Abstraction/Models/IItem.cs @@ -1,4 +1,5 @@ using System.Reactive.Linq; +using FileTime.Core.ContentAccess; using FileTime.Core.Enums; using FileTime.Core.Services; using FileTime.Core.Timeline; diff --git a/src/Core/FileTime.Core.Services/ContentProviderBase.cs b/src/Core/FileTime.Core.ContentAccess/ContentProviderBase.cs similarity index 97% rename from src/Core/FileTime.Core.Services/ContentProviderBase.cs rename to src/Core/FileTime.Core.ContentAccess/ContentProviderBase.cs index d88ba75..031b8c0 100644 --- a/src/Core/FileTime.Core.Services/ContentProviderBase.cs +++ b/src/Core/FileTime.Core.ContentAccess/ContentProviderBase.cs @@ -1,4 +1,3 @@ -using System.Collections.ObjectModel; using System.Reactive.Linq; using System.Reactive.Subjects; using DynamicData; @@ -6,7 +5,7 @@ using FileTime.Core.Enums; using FileTime.Core.Models; using FileTime.Core.Timeline; -namespace FileTime.Core.Services; +namespace FileTime.Core.ContentAccess; public abstract class ContentProviderBase : IContentProvider { diff --git a/src/Core/FileTime.Core.ContentAccess/FileTime.Core.ContentAccess.csproj b/src/Core/FileTime.Core.ContentAccess/FileTime.Core.ContentAccess.csproj new file mode 100644 index 0000000..72dd3f9 --- /dev/null +++ b/src/Core/FileTime.Core.ContentAccess/FileTime.Core.ContentAccess.csproj @@ -0,0 +1,13 @@ + + + + net6.0 + enable + enable + + + + + + + diff --git a/src/Core/FileTime.Core.Models/Container.cs b/src/Core/FileTime.Core.Models/Container.cs index 0871c79..b168b95 100644 --- a/src/Core/FileTime.Core.Models/Container.cs +++ b/src/Core/FileTime.Core.Models/Container.cs @@ -2,6 +2,7 @@ using System.Collections.ObjectModel; using System.Reactive.Linq; using System.Reactive.Subjects; using DynamicData; +using FileTime.Core.ContentAccess; using FileTime.Core.Enums; using FileTime.Core.Services; using FileTime.Core.Timeline; diff --git a/src/Core/FileTime.Core.Models/Element.cs b/src/Core/FileTime.Core.Models/Element.cs index dfd6895..e1fb12e 100644 --- a/src/Core/FileTime.Core.Models/Element.cs +++ b/src/Core/FileTime.Core.Models/Element.cs @@ -1,4 +1,5 @@ using System.Collections.ObjectModel; +using FileTime.Core.ContentAccess; using FileTime.Core.Enums; using FileTime.Core.Services; using FileTime.Core.Timeline; diff --git a/src/Core/FileTime.Core.Timeline/TimelessContentProvider.cs b/src/Core/FileTime.Core.Timeline/TimelessContentProvider.cs index b22c908..138db9c 100644 --- a/src/Core/FileTime.Core.Timeline/TimelessContentProvider.cs +++ b/src/Core/FileTime.Core.Timeline/TimelessContentProvider.cs @@ -1,4 +1,5 @@ using System.Reactive.Subjects; +using FileTime.Core.ContentAccess; using FileTime.Core.Enums; using FileTime.Core.Models; using FileTime.Core.Services; diff --git a/src/FileTime.sln b/src/FileTime.sln index 1f96016..5a05343 100644 --- a/src/FileTime.sln +++ b/src/FileTime.sln @@ -55,6 +55,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileTime.Core.Command", "Co EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileTime.Core.Timeline", "Core\FileTime.Core.Timeline\FileTime.Core.Timeline.csproj", "{2AC5CAFF-EBDA-4C6E-BCFF-304B651F2906}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FileTime.Core.ContentAccess", "Core\FileTime.Core.ContentAccess\FileTime.Core.ContentAccess.csproj", "{88BBB541-7306-44AE-95B1-0F8765AF1D4E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -133,6 +135,10 @@ Global {2AC5CAFF-EBDA-4C6E-BCFF-304B651F2906}.Debug|Any CPU.Build.0 = Debug|Any CPU {2AC5CAFF-EBDA-4C6E-BCFF-304B651F2906}.Release|Any CPU.ActiveCfg = Release|Any CPU {2AC5CAFF-EBDA-4C6E-BCFF-304B651F2906}.Release|Any CPU.Build.0 = Release|Any CPU + {88BBB541-7306-44AE-95B1-0F8765AF1D4E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88BBB541-7306-44AE-95B1-0F8765AF1D4E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88BBB541-7306-44AE-95B1-0F8765AF1D4E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88BBB541-7306-44AE-95B1-0F8765AF1D4E}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -157,6 +163,7 @@ Global {B7A45654-E56C-43C8-998E-0F4661395540} = {8C3CFEFE-78A5-4940-B388-D15FCE02ECE9} {1846BE76-8F68-4FC3-8954-871F14743F0B} = {3324D046-1E05-46B5-B1BA-82910D56B332} {2AC5CAFF-EBDA-4C6E-BCFF-304B651F2906} = {3324D046-1E05-46B5-B1BA-82910D56B332} + {88BBB541-7306-44AE-95B1-0F8765AF1D4E} = {3324D046-1E05-46B5-B1BA-82910D56B332} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {859FB3DF-C60A-46B1-82E5-90274905D1EF} diff --git a/src/GuiApp/Avalonia/FileTime.GuiApp.App/App.axaml b/src/GuiApp/Avalonia/FileTime.GuiApp.App/App.axaml index 9b8b682..35ebcd0 100644 --- a/src/GuiApp/Avalonia/FileTime.GuiApp.App/App.axaml +++ b/src/GuiApp/Avalonia/FileTime.GuiApp.App/App.axaml @@ -1,5 +1,5 @@ + diff --git a/src/Providers/FileTime.Providers.Local/LocalContentProvider.cs b/src/Providers/FileTime.Providers.Local/LocalContentProvider.cs index 7a9a022..af175cc 100644 --- a/src/Providers/FileTime.Providers.Local/LocalContentProvider.cs +++ b/src/Providers/FileTime.Providers.Local/LocalContentProvider.cs @@ -3,6 +3,7 @@ using System.Reactive.Subjects; using System.Runtime.InteropServices; using DynamicData; using FileTime.App.Core.Models; +using FileTime.Core.ContentAccess; using FileTime.Core.Enums; using FileTime.Core.Models; using FileTime.Core.Services; diff --git a/src/Providers/FileTime.Providers.Local/Startup.cs b/src/Providers/FileTime.Providers.Local/Startup.cs index b2be663..4f1bdf5 100644 --- a/src/Providers/FileTime.Providers.Local/Startup.cs +++ b/src/Providers/FileTime.Providers.Local/Startup.cs @@ -1,3 +1,4 @@ +using FileTime.Core.ContentAccess; using FileTime.Core.Services; using Microsoft.Extensions.DependencyInjection;