using System.Linq; using JD.Guinness.WPF.Module.Configuration.XBoxSeriesX; using JD.Guinness.WPF.Module.Extension; using Plume.WPF.Mvvm; namespace JD.Guinness.WPF.Module.Model.XBoxSeriesX { public sealed class XBoxSeriesXConfiguration : BindableBase, IWarnable { private bool _generate; private string _settingsFilePath; private string _warnings; public bool Generate { get => _generate; set => SetProperty(ref _generate, value); } public string SettingsFilePath { get => _settingsFilePath; set => SetProperty(ref _settingsFilePath, value); } public string Warnings { get => _warnings; set => SetProperty(ref _warnings, value); } public DispatcherObservableCollection> Languages { get; } public XBoxSeriesXConfiguration() { Languages = new DispatcherObservableCollection>(); } public XBoxSeriesXConfigurationSave ToSave(string workspacePath) => new XBoxSeriesXConfigurationSave { Generate = Generate, SettingsFilePath = SettingsFilePath.ToRelativePath(workspacePath), Languages = Languages.Where(s => s.IsSelected).Select(s => s.Value.Id).ToArray() }; } }