FruitBankHybridApp/FruitBank.Common/Models/LoggedInModel.cs

49 lines
1.3 KiB
C#

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 bool IsAdministrator => IsLoggedIn && CustomerRoles.Any(x => x.SystemName.ToLowerInvariant() == "administrators");
public CustomerDto? CustomerDto { get; private set; }
public List<CustomerRole> CustomerRoles { get; private set; } = [];
public List<CustomerDto> 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<CustomerRole> customerRoles)
{
CustomerRoles.Clear();
CustomerRoles.AddRange(customerRoles);
}
public void LogOut()
{
CustomerDto = null;
CustomerRoles.Clear();
}
}