mirror of
https://github.com/Artemis-RGB/Artemis
synced 2025-12-13 05:48:35 +00:00
62 lines
1.8 KiB
C#
62 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using Artemis.UI.Screens.Workshop.SubmissionWizard.Steps.Profile;
|
|
using Artemis.UI.Shared.Services;
|
|
using Artemis.WebClient.Workshop;
|
|
using DryIoc;
|
|
|
|
namespace Artemis.UI.Screens.Workshop.SubmissionWizard;
|
|
|
|
public class SubmissionWizardState
|
|
{
|
|
private readonly IContainer _container;
|
|
private readonly IWindowService _windowService;
|
|
private readonly IWorkshopWizardViewModel _wizardViewModel;
|
|
|
|
public SubmissionWizardState(IWorkshopWizardViewModel wizardViewModel, IContainer container, IWindowService windowService)
|
|
{
|
|
_wizardViewModel = wizardViewModel;
|
|
_container = container;
|
|
_windowService = windowService;
|
|
}
|
|
|
|
public EntryType EntryType { get; set; }
|
|
public long? EntryId { get; set; }
|
|
|
|
public string Name { get; set; } = string.Empty;
|
|
public Stream? Icon { get; set; }
|
|
public string Summary { get; set; } = string.Empty;
|
|
public string Description { get; set; } = string.Empty;
|
|
|
|
public List<long> Categories { get; set; } = new();
|
|
public List<string> Tags { get; set; } = new();
|
|
public List<Stream> Images { get; set; } = new();
|
|
|
|
public object? EntrySource { get; set; }
|
|
|
|
public void ChangeScreen<TSubmissionViewModel>() where TSubmissionViewModel : SubmissionViewModel
|
|
{
|
|
try
|
|
{
|
|
_wizardViewModel.Screen = _container.Resolve<TSubmissionViewModel>();
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
_windowService.ShowExceptionDialog("Wizard screen failed to activate", e);
|
|
}
|
|
}
|
|
|
|
public void Close()
|
|
{
|
|
_wizardViewModel.ShouldClose = true;
|
|
}
|
|
|
|
public void StartForCurrentEntry()
|
|
{
|
|
if (EntryType == EntryType.Profile)
|
|
ChangeScreen<ProfileSelectionStepViewModel>();
|
|
else
|
|
throw new NotImplementedException();
|
|
}
|
|
} |