pschelpdesk/FastBill/ViewModels/SettingsViewModel.cs
2024-11-15 21:56:49 +01:00

56 lines
1.5 KiB
C#

using System.Reactive;
using CommunityToolkit.Mvvm.DependencyInjection;
using FastBill.Models;
using PSCHelpdesk.Shared.Service;
using PSCHelpdesk.Shared.Setting;
using PSCHelpdesk.Shared.ViewModels;
using ReactiveUI;
namespace FastBill.ViewModels;
public class SettingsViewModel: ViewModelBase, IViewModelBase
{
private string _email;
private string _apiKey;
private Settings _settings;
public ReactiveCommand<Unit, Unit> SaveSettings { get; }
public string EMail
{
get => _email;
set => SetAndRaisePropertyChanged(ref _email, value);
}
public string ApiKey
{
get => _apiKey;
set => SetAndRaisePropertyChanged(ref _apiKey, value);
}
public Settings Settings
{
get => _settings;
set => SetAndRaisePropertyChanged(ref _settings, value);
}
public SettingsViewModel()
{
Settings = new Settings();
var settingsManager = (SettingsManager)Ioc.Default.GetService<ISettingsManager>();
var _set = new Settings();
settingsManager.LoadPluginSettings("FastbillSettings", _set);
Settings.EMail = _set.EMail;
Settings.ApiKey = _set.ApiKey;
SaveSettings = ReactiveCommand.Create(saveSettings);
}
void saveSettings()
{
var settingsManager = (SettingsManager)Ioc.Default.GetService<ISettingsManager>();
settingsManager.SavePluginSettings("FastbillSettings", Settings);
}
}