using AyCode.Core; using Mango.Nop.Core.Dtos; using Mango.Nop.Core.Models; using Nop.Core.Domain.Customers; namespace FruitBank.Common.Models; public class LoggedInModel { public bool IsLoggedIn => CustomerDto != null; public bool IsRevisor => IsLoggedIn && CustomerRoles.Any(x => x.SystemName.ToLowerInvariant() == "measuringrevisor"); public CustomerDto? CustomerDto { get; private set; } public List CustomerRoles { get; private set; } = []; public List MeasuringUsers { get; set; } = []; public LoggedInModel() { } public LoggedInModel(CustomerDto? customerDto) { InitLoggedInCustomer(customerDto); } public LoggedInModel(MgLoginModelResponse loginModelResponse) : this(loginModelResponse.CustomerDto) { } public void InitLoggedInCustomer(CustomerDto? customerDto) { LogOut(); if (customerDto != null) CustomerDto = customerDto; } public void InitCustomerRoles(List customerRoles) { CustomerRoles.Clear(); CustomerRoles.AddRange(customerRoles); } public void LogOut() { CustomerDto = null; CustomerRoles.Clear(); } }