FruitBankHybridApp/FruitBank.Common/Models/LoggedInModel.cs

53 lines
1.6 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 bool IsDeveloper => IsAdministrator && (CustomerDto!.Email.Contains("@aycode.com") || CustomerDto!.Email.Contains("wsdservers@") ||
CustomerDto!.Email.Contains("@dsserver.com"));
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();
//MeasuringUsers.Clear();
}
}