namespace Netina.AdminPanel.PWA.Models; public class BaseViewModel { public bool IsProcessing { get; set; } = false; public virtual void Initialize() { } public virtual Task InitializeAsync() { return Task.CompletedTask; } } public class BaseViewModel { public bool IsProcessing { get; set; } = false; public TPageDto PageDto { get; set; } private string[] _permissions = new string[]{}; private readonly IUserUtility _userUtility; public bool IsPermitted { get; set; } = false; public BaseViewModel(IUserUtility userUtility,params string[] permissions) { _userUtility = userUtility; _permissions = permissions; PageDto = Activator.CreateInstance(); } public virtual void Initialize() { } public virtual async Task InitializeAsync() { await CheckPermissions(); } public async Task CheckPermissions() { if (_permissions.Length == 0) { IsPermitted = true; return true; } var permissions = await _userUtility.GetPermissionsAsync(); if (permissions == null) return false; foreach (var permission in _permissions) { if (permissions.Contains(permission)) { IsPermitted = true; return true; } } return false; } }