livia-test/LiviaAdmin/ViewModels/MainWindowViewModel.cs
2025-03-28 14:31:53 +08:00

39 lines
1.3 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using Livia.Models;
using Microsoft.Extensions.Logging;
namespace LiviaAdmin.ViewModels;
public class MainWindowViewModel : ObservableRecipient
{
public string HardwareId { get => _hardwareId; set => SetProperty(ref _hardwareId, value); }
public DateTime ExpireDate { get => _expireDate; set => SetProperty(ref _expireDate, value); }
public string AuthenticationKey { get => _authenticationKey; set => SetProperty(ref _authenticationKey, value); }
private string _hardwareId;
private string _authenticationKey = string.Empty;
private DateTime _expireDate = new(2099, 01, 01);
private readonly ILogger _logger;
private readonly ISerialKeyManager _serialKeyManager;
public MainWindowViewModel(ILogger logger, ISerialKeyManager serialKeyManager)
{
_logger = logger;
_serialKeyManager = serialKeyManager;
_hardwareId = _serialKeyManager.HardwareId;
}
public void GenerateAuthenticationKey()
{
_logger.LogInformation("GenerateAuthenticationKey");
AuthenticationKeyLicense license = new()
{
ExpireDateTime = ExpireDate,
HardwareId = HardwareId
};
AuthenticationKey = _serialKeyManager.EncryptLicense(license);
}
}