using Avalonia;
using Avalonia.Controls;
using Avalonia.Media;
using Avalonia.Styling;
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using Cowain.Base.Abstractions.Navigation;
using Cowain.Base.Attributes;
using Cowain.Base.Helpers;
using Cowain.Base.IServices;
using Cowain.Base.Models.Menu;
using Cowain.Base.ViewModels;
using Ke.Bee.Localization.Localizer.Abstractions;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Semi.Avalonia;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Text.Json;
using System.Threading;
using System.Threading.Tasks;
using MenuItem = Cowain.Base.Models.Menu.MenuItem;
namespace Cowain.TestProject.ViewModels
{
public partial class LoginWindowViewModel : ViewModelBase
{
private class UserData
{
public string? UserName { get; set; }
public string? Password { get; set; }
public bool IsRemember { get; set; }
}
///
/// 登录成功
///
[ObservableProperty]
private bool _loginSuccess;
///
/// 是否记住用户名
///
[ObservableProperty]
private bool _rememberUserName;
///
/// 用户名
///
[ObservableProperty]
[NotifyDataErrorInfo]
[NotifyCanExecuteChangedFor(nameof(LoginCommand))]
[MinLength(2, "Errors.MinLength")]
private string? _userName;
///
/// 密码
///
[ObservableProperty]
[NotifyDataErrorInfo]
[NotifyCanExecuteChangedFor(nameof(LoginCommand))]
[MinLength(4, "Errors.MinLength")]
private string? _password;
///
/// 错误信息
///
[ObservableProperty]
private string? _errorMessage;
///
/// 当前页面视图模型
///
[ObservableProperty]
private PageViewModelBase? _currentPage;
///
/// 设置菜单集合
///
[ObservableProperty]
private ObservableCollection? _settingMenus;
private readonly ILocalizer _l;
///
/// 视图导航器
///
private readonly IViewNavigator _viewNavigator;
///
/// 菜单数据
///
private readonly List