1
0
mirror of https://github.com/Artemis-RGB/Artemis synced 2025-12-13 05:48:35 +00:00
Artemis/src/Artemis.UI/Screens/Scripting/Dialogs/ScriptConfigurationEditViewModel.cs
Robert 5367027471 Core - Fixed a lot of compiler warnings
Scripting - Added script renaming/deleting
2021-06-21 19:34:34 +02:00

53 lines
1.5 KiB
C#

using System.Threading.Tasks;
using Artemis.Core.ScriptingProviders;
using Artemis.UI.Shared.Services;
using FluentValidation;
using Stylet;
namespace Artemis.UI.Screens.Scripting.Dialogs
{
public class ScriptConfigurationEditViewModel : DialogViewModelBase
{
private string _name;
public ScriptConfigurationEditViewModel(IModelValidator<ScriptConfigurationEditViewModel> validator, ScriptConfiguration scriptConfiguration) : base(validator)
{
ScriptConfiguration = scriptConfiguration;
_name = ScriptConfiguration.Name;
}
public ScriptConfiguration ScriptConfiguration { get; }
public string Name
{
get => _name;
set => SetAndNotify(ref _name, value);
}
public async Task Accept()
{
await ValidateAsync();
if (HasErrors)
return;
ScriptConfiguration.Name = Name;
if (Session is {IsEnded: false})
Session.Close(nameof(Accept));
}
public void Delete()
{
if (Session is {IsEnded: false})
Session.Close(nameof(Delete));
}
}
public class ProfileElementScriptConfigurationEditViewModelValidator : AbstractValidator<ScriptConfigurationEditViewModel>
{
public ProfileElementScriptConfigurationEditViewModelValidator()
{
RuleFor(m => m.Name).NotEmpty().WithMessage("Script name may not be empty");
}
}
}