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); } }