using Hotline.Caching.Interfaces; using Hotline.Configurations; using Hotline.Settings; using Microsoft.Extensions.Options; using Newtonsoft.Json; using XF.Domain.Authentications; namespace Hotline.Authentications { public class ProvinceSessionContext : ISessionContext { public const string Key = "ProvinceSessionContext"; public ProvinceSessionContext(ISystemSettingCacheManager systemSettingCacheManager) { var setting = systemSettingCacheManager.GetSetting(SettingConstants.CityBaseConfiguration)?.SettingValue[0]; var cityBase = JsonConvert.DeserializeObject(setting); var config = cityBase.CityProvince; UserId = config.UserId; UserName = config.UserName; OrgId = config.OrgId; OrgName = config.OrgName; OrgLevel = 1; } //取消写入 /// /// Id of current tenant or null for host /// public string? UserId { get; init; } /// /// Id of current user or throw Exception for guest /// /// public string RequiredUserId => UserId ?? throw new ArgumentNullException(); //取消写入 public string? UserName { get; init; } public string? Phone { get; init; } /// /// Roles /// public string[] Roles { get; init; } public string? OrgId { get; init; } public string RequiredOrgId => OrgId ?? throw new ArgumentNullException(); public string? OrgName { get; init; } public int OrgLevel { get; init; } public string? OrgAreaCode { get; init; } public bool OrgIsCenter { get; init; } /// /// 部门行政区划名称 /// public string? OrgAreaName { get; init; } public string? AreaId { get; init; } public string? ClientId { get; init; } /// /// 工号 /// public string? StaffNo { get; init; } } }