Core/UI - Move from Ninject to DryIoc (#754)

This commit is contained in:
RobertBeekman authored and GitHub committed 2023-01-30 21:00:10 +01:00
1 parent 166cb888c1
commit b7e723b7e9
121 files changed
+1175 -980

No files matched your search

@@ -15,10 +15,10 @@ public class SidebarCategoryEditViewModel : ContentDialogViewModelBase
private readonly IProfileService _profileService;
private string? _categoryName;
public SidebarCategoryEditViewModel(IProfileService profileService, ProfileCategory? category)
public SidebarCategoryEditViewModel(IProfileService profileService, ProfileCategory category)
{
_profileService = profileService;
_category = category;
_category = category == ProfileCategory.Empty ? null : category;
if (_category != null)
_categoryName = _category.Name;
@@ -8,7 +8,7 @@ using System.Threading.Tasks;
using Artemis.Core;
using Artemis.Core.Modules;
using Artemis.Core.Services;
using Artemis.UI.Ninject.Factories;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Screens.VisualScripting;
using Artemis.UI.Shared;
using Artemis.UI.Shared.Services;
@@ -16,7 +16,6 @@ using Artemis.UI.Shared.Services.ProfileEditor;
using Avalonia.Media.Imaging;
using Avalonia.Threading;
using Material.Icons;
using Newtonsoft.Json;
using ReactiveUI;
namespace Artemis.UI.Screens.Sidebar;
@@ -43,7 +42,7 @@ public class ProfileConfigurationEditViewModel : DialogViewModelBase<ProfileConf
public ProfileConfigurationEditViewModel(
ProfileCategory profileCategory,
ProfileConfiguration? profileConfiguration,
ProfileConfiguration profileConfiguration,
IWindowService windowService,
IProfileService profileService,
IProfileEditorService profileEditorService,
@@ -54,7 +53,10 @@ public class ProfileConfigurationEditViewModel : DialogViewModelBase<ProfileConf
_windowService = windowService;
_profileService = profileService;
_profileEditorService = profileEditorService;
_profileConfiguration = profileConfiguration ?? profileService.CreateProfileConfiguration(profileCategory, "New profile", Enum.GetValues<MaterialIconKind>().First().ToString());
_profileConfiguration = profileConfiguration == ProfileConfiguration.Empty
? profileService.CreateProfileConfiguration(profileCategory, "New profile", Enum.GetValues<MaterialIconKind>().First().ToString())
: profileConfiguration;
_profileName = _profileConfiguration.Name;
_iconType = _profileConfiguration.Icon.IconType;
_hotkeyMode = _profileConfiguration.HotkeyMode;
@@ -64,11 +66,9 @@ public class ProfileConfigurationEditViewModel : DialogViewModelBase<ProfileConf
if (_profileConfiguration.DisableHotkey != null)
_disableHotkey = new Hotkey {Key = _profileConfiguration.DisableHotkey.Key, Modifiers = _profileConfiguration.DisableHotkey.Modifiers};
IsNew = profileConfiguration == null;
IsNew = profileConfiguration == ProfileConfiguration.Empty;
DisplayName = IsNew ? "Artemis | Add profile" : "Artemis | Edit profile properties";
Modules = new ObservableCollection<ProfileModuleViewModel?>(
pluginManagementService.GetFeaturesOfType<Module>().Where(m => !m.IsAlwaysAvailable).Select(m => new ProfileModuleViewModel(m))
);
Modules = new ObservableCollection<ProfileModuleViewModel?>(pluginManagementService.GetFeaturesOfType<Module>().Where(m => !m.IsAlwaysAvailable).Select(m => new ProfileModuleViewModel(m)));
Modules.Insert(0, null);
_selectedModule = Modules.FirstOrDefault(m => m?.Module == _profileConfiguration.Module);
@@ -258,7 +258,7 @@ public class ProfileConfigurationEditViewModel : DialogViewModelBase<ProfileConf
private async Task ExecuteOpenConditionEditor()
{
await _windowService.ShowDialogAsync<NodeScriptWindowViewModel, bool>(("nodeScript", ProfileConfiguration.ActivationCondition));
await _windowService.ShowDialogAsync<NodeScriptWindowViewModel, bool>(ProfileConfiguration.ActivationCondition);
}
#endregion
@@ -9,7 +9,7 @@ using System.Reactive.Linq;
using System.Threading.Tasks;
using Artemis.Core;
using Artemis.Core.Services;
using Artemis.UI.Ninject.Factories;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Shared;
using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.Builders;
@@ -146,7 +146,7 @@ public class SidebarCategoryViewModel : ActivatableViewModelBase
{
await _windowService.CreateContentDialog()
.WithTitle("Edit category")
.WithViewModel(out SidebarCategoryEditViewModel vm, ("category", ProfileCategory))
.WithViewModel(out SidebarCategoryEditViewModel vm, ProfileCategory)
.HavingPrimaryButton(b => b.WithText("Confirm").WithCommand(vm.Confirm))
.WithCloseButtonText("Cancel")
.WithDefaultButton(ContentDialogButton.Primary)
@@ -165,10 +165,7 @@ public class SidebarCategoryViewModel : ActivatableViewModelBase
private async Task ExecuteAddProfile()
{
ProfileConfiguration? result = await _windowService.ShowDialogAsync<ProfileConfigurationEditViewModel, ProfileConfiguration?>(
("profileCategory", ProfileCategory),
("profileConfiguration", null)
);
ProfileConfiguration? result = await _windowService.ShowDialogAsync<ProfileConfigurationEditViewModel, ProfileConfiguration?>(ProfileCategory, ProfileConfiguration.Empty);
if (result != null)
{
SidebarProfileConfigurationViewModel viewModel = _vmFactory.SidebarProfileConfigurationViewModel(result);
@@ -57,10 +57,7 @@ public class SidebarProfileConfigurationViewModel : ActivatableViewModelBase
private async Task ExecuteEditProfile()
{
await _windowService.ShowDialogAsync<ProfileConfigurationEditViewModel, ProfileConfiguration?>(
("profileCategory", ProfileConfiguration.Category),
("profileConfiguration", ProfileConfiguration)
);
await _windowService.ShowDialogAsync<ProfileConfigurationEditViewModel, ProfileConfiguration?>(ProfileConfiguration.Category, ProfileConfiguration);
}
private void ExecuteToggleSuspended()
@@ -1,8 +1,7 @@
using System;
using Artemis.UI.Shared;
using DryIoc;
using Material.Icons;
using Ninject;
using Ninject.Parameters;
using ReactiveUI;
namespace Artemis.UI.Screens.Sidebar;
@@ -15,9 +14,9 @@ public class SidebarScreenViewModel<T> : SidebarScreenViewModel where T : MainSc
public override Type ScreenType => typeof(T);
public override MainScreenViewModel CreateInstance(IKernel kernel, IScreen screen)
public override MainScreenViewModel CreateInstance(IContainer container, IScreen screen)
{
return kernel.Get<T>(new ConstructorArgument("hostScreen", screen));
return container.Resolve<T>(new object[] { screen });
}
}
@@ -32,5 +31,5 @@ public abstract class SidebarScreenViewModel : ViewModelBase
public MaterialIconKind Icon { get; }
public abstract Type ScreenType { get; }
public abstract MainScreenViewModel CreateInstance(IKernel kernel, IScreen screen);
public abstract MainScreenViewModel CreateInstance(IContainer container, IScreen screen);
}
@@ -7,7 +7,7 @@ using System.Reactive.Linq;
using System.Threading.Tasks;
using Artemis.Core;
using Artemis.Core.Services;
using Artemis.UI.Ninject.Factories;
using Artemis.UI.DryIoc.Factories;
using Artemis.UI.Screens.Home;
using Artemis.UI.Screens.ProfileEditor;
using Artemis.UI.Screens.Settings;
@@ -18,10 +18,10 @@ using Artemis.UI.Shared.Services;
using Artemis.UI.Shared.Services.Builders;
using Artemis.UI.Shared.Services.ProfileEditor;
using Avalonia.Threading;
using DryIoc;
using DynamicData;
using DynamicData.Binding;
using Material.Icons;
using Ninject;
using ReactiveUI;
namespace Artemis.UI.Screens.Sidebar;
@@ -29,7 +29,7 @@ namespace Artemis.UI.Screens.Sidebar;
public class SidebarViewModel : ActivatableViewModelBase
{
private readonly IScreen _hostScreen;
private readonly IKernel _kernel;
private readonly IContainer _container;
private readonly IProfileEditorService _profileEditorService;
private readonly IProfileEditorVmFactory _profileEditorVmFactory;
private readonly IWindowService _windowService;
@@ -37,7 +37,7 @@ public class SidebarViewModel : ActivatableViewModelBase
private ReadOnlyObservableCollection<SidebarCategoryViewModel> _sidebarCategories = new(new ObservableCollection<SidebarCategoryViewModel>());
public SidebarViewModel(IScreen hostScreen,
IKernel kernel,
IContainer container,
IProfileService profileService,
IWindowService windowService,
IProfileEditorService profileEditorService,
@@ -45,7 +45,7 @@ public class SidebarViewModel : ActivatableViewModelBase
IProfileEditorVmFactory profileEditorVmFactory)
{
_hostScreen = hostScreen;
_kernel = kernel;
_container = container;
_windowService = windowService;
_profileEditorService = profileEditorService;
_profileEditorVmFactory = profileEditorVmFactory;
@@ -120,7 +120,7 @@ public class SidebarViewModel : ActivatableViewModelBase
{
await _windowService.CreateContentDialog()
.WithTitle("Add new category")
.WithViewModel(out SidebarCategoryEditViewModel vm, ("category", null))
.WithViewModel(out SidebarCategoryEditViewModel vm, ProfileCategory.Empty)
.HavingPrimaryButton(b => b.WithText("Confirm").WithCommand(vm.Confirm))
.WithCloseButtonText("Cancel")
.WithDefaultButton(ContentDialogButton.Primary)
@@ -137,7 +137,7 @@ public class SidebarViewModel : ActivatableViewModelBase
private void NavigateToScreen(SidebarScreenViewModel sidebarScreenViewModel)
{
_hostScreen.Router.Navigate.Execute(sidebarScreenViewModel.CreateInstance(_kernel, _hostScreen));
_hostScreen.Router.Navigate.Execute(sidebarScreenViewModel.CreateInstance(_container, _hostScreen));
_profileEditorService.ChangeCurrentProfileConfiguration(null);
}
}