JD2022-TU1/main/tools/modules/JD.Guinness.WPF.Module/Model/Ps4/Ps4Zone.cs

55 lines
1.6 KiB
C#

using System.Collections.Generic;
using System.Linq;
using JD.Guinness.WPF.Module.Configuration.Ps4;
using JD.Guinness.WPF.Module.Extension;
using Plume.WPF.Mvvm;
namespace JD.Guinness.WPF.Module.Model.Ps4
{
public sealed class Ps4Zone : BindableBase, IWarnable
{
private string _name;
private string _npCommId;
private string _trpFilePath;
private string _warnings;
public string Name
{
get => _name;
set => SetProperty(ref _name, value);
}
public string NpCommId
{
get => _npCommId;
set => SetProperty(ref _npCommId, value);
}
public string TrpFilePath
{
get => _trpFilePath;
set => SetProperty(ref _trpFilePath, value);
}
public string Warnings
{
get => _warnings;
set => SetProperty(ref _warnings, value);
}
public DispatcherObservableCollection<Selectable<LanguageInfo>> Languages { get; }
public Ps4Zone(IEnumerable<LanguageInfo> infos)
{
Languages = new DispatcherObservableCollection<Selectable<LanguageInfo>>(infos.Select(i => new Selectable<LanguageInfo> { Value = i }));
}
public Ps4ZoneSave ToSave(string workspacePath) => new Ps4ZoneSave
{
Name = Name,
NpCommId = NpCommId,
TrpFilePath = TrpFilePath.ToRelativePath(workspacePath),
Languages = Languages.Where(s => s.IsSelected).Select(s => s.Value.Id).ToArray()
};
}
}