Admin mode WIP
This commit is contained in:
@@ -23,10 +23,9 @@ namespace FileTime.App.Core.ViewModels;
|
||||
public partial class TabViewModel : ITabViewModel
|
||||
{
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly IItemNameConverterService _itemNameConverterService;
|
||||
private readonly IAppState _appState;
|
||||
private readonly IRxSchedulerService _rxSchedulerService;
|
||||
private readonly ITimelessContentProvider _timelessContentProvider;
|
||||
private readonly IRefreshSmoothnessCalculator _refreshSmoothnessCalculator;
|
||||
private readonly SourceList<FullName> _markedItems = new();
|
||||
private readonly List<IDisposable> _disposables = new();
|
||||
private bool _disposed;
|
||||
@@ -50,19 +49,17 @@ public partial class TabViewModel : ITabViewModel
|
||||
|
||||
public TabViewModel(
|
||||
IServiceProvider serviceProvider,
|
||||
IItemNameConverterService itemNameConverterService,
|
||||
IAppState appState,
|
||||
IRxSchedulerService rxSchedulerService,
|
||||
ITimelessContentProvider timelessContentProvider)
|
||||
ITimelessContentProvider timelessContentProvider,
|
||||
IRefreshSmoothnessCalculator refreshSmoothnessCalculator)
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
_itemNameConverterService = itemNameConverterService;
|
||||
_appState = appState;
|
||||
|
||||
MarkedItems = _markedItems.Connect().StartWithEmpty();
|
||||
IsSelected = _appState.SelectedTab.Select(s => s == this);
|
||||
_rxSchedulerService = rxSchedulerService;
|
||||
_timelessContentProvider = timelessContentProvider;
|
||||
_refreshSmoothnessCalculator = refreshSmoothnessCalculator;
|
||||
}
|
||||
|
||||
public void Init(ITab tab, int tabNumber)
|
||||
@@ -103,7 +100,7 @@ public partial class TabViewModel : ITabViewModel
|
||||
CurrentSelectedItemAsContainer = CurrentSelectedItem.Map(i => i as IContainerViewModel);
|
||||
|
||||
SelectedsChildren = CurrentSelectedItem
|
||||
.Debounce(TimeSpan.FromMilliseconds(200), resetTimer: true)
|
||||
.Debounce(() => _refreshSmoothnessCalculator.RefreshDelay, resetTimer: true)
|
||||
.DistinctUntilChanged()
|
||||
.Map(item =>
|
||||
{
|
||||
|
||||
@@ -12,6 +12,9 @@ using FileTime.Core.ContentAccess;
|
||||
using FileTime.Core.Services;
|
||||
using FileTime.Core.Timeline;
|
||||
using FileTime.Providers.Local;
|
||||
using FileTime.Providers.LocalAdmin;
|
||||
using FileTime.Providers.Remote;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
|
||||
@@ -19,7 +22,7 @@ namespace FileTime.App.DependencyInjection;
|
||||
|
||||
public static class DependencyInjection
|
||||
{
|
||||
public static IServiceCollection RegisterDefaultServices(IServiceCollection? serviceCollection = null)
|
||||
public static IServiceCollection RegisterDefaultServices(IConfigurationRoot configuration, IServiceCollection? serviceCollection = null)
|
||||
{
|
||||
serviceCollection ??= new ServiceCollection();
|
||||
|
||||
@@ -31,7 +34,7 @@ public static class DependencyInjection
|
||||
//TODO: check local/remote context
|
||||
serviceCollection.TryAddSingleton<ILocalCommandExecutor, LocalCommandExecutor>();
|
||||
serviceCollection.TryAddSingleton<ICommandSchedulerNotifier, LocalCommandSchedulerNotifier>();
|
||||
|
||||
|
||||
serviceCollection.TryAddSingleton<IApplicationSettings, ApplicationSettings>();
|
||||
serviceCollection.TryAddSingleton<ITabPersistenceService, TabPersistenceService>();
|
||||
serviceCollection.TryAddTransient<ITab, Tab>();
|
||||
@@ -41,18 +44,18 @@ public static class DependencyInjection
|
||||
|
||||
return serviceCollection
|
||||
.AddCoreAppServices()
|
||||
.AddLocalServices()
|
||||
.AddLocalProviderServices()
|
||||
.AddLocalAdminProviderServices(configuration)
|
||||
.AddRemoteProviderServices()
|
||||
.RegisterCommands()
|
||||
.AddDefaultCommandHandlers();
|
||||
}
|
||||
|
||||
private static IServiceCollection RegisterCommands(this IServiceCollection serviceCollection)
|
||||
{
|
||||
return serviceCollection
|
||||
=> serviceCollection
|
||||
.AddCommands()
|
||||
.AddTransient<CreateContainerCommand>()
|
||||
.AddTransient<CreateElementCommand>()
|
||||
.AddTransient<CopyCommand>()
|
||||
.AddTransient<DeleteCommand>();
|
||||
}
|
||||
}
|
||||
@@ -16,6 +16,7 @@
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\Core\FileTime.Core.CommandHandlers\FileTime.Core.CommandHandlers.csproj" />
|
||||
<ProjectReference Include="..\..\Core\FileTime.Core.Timeline\FileTime.Core.Timeline.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FileTime.Providers.LocalAdmin\FileTime.Providers.LocalAdmin.csproj" />
|
||||
<ProjectReference Include="..\..\Providers\FileTime.Providers.Local\FileTime.Providers.Local.csproj" />
|
||||
<ProjectReference Include="..\FileTime.App.Core\FileTime.App.Core.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user