ThMultiTenancyAppService.cs 1.37 KB
using FoodLabeling.Th.Application.Contracts.Dtos.MultiTenancy;
using FoodLabeling.Th.Application.Contracts.IServices;
using Volo.Abp.Application.Services;
using Volo.Abp.MultiTenancy;
using Yi.Framework.TenantManagement.Application.Contracts;
using Yi.Framework.TenantManagement.Application.Contracts.Dtos;

namespace FoodLabeling.Th.Application.Services;

/// <summary>
/// 泰额版多租户:租户下拉与当前租户上下文
/// </summary>
public class ThMultiTenancyAppService : ApplicationService, IThMultiTenancyAppService
{
    private readonly ITenantService _tenantService;

    public ThMultiTenancyAppService(ITenantService tenantService)
    {
        _tenantService = tenantService;
    }

    /// <inheritdoc />
    public virtual async Task<List<ThTenantSelectDto>> GetTenantSelectAsync()
    {
        var page = await _tenantService.GetListAsync(new TenantGetListInput
        {
            SkipCount = 1,
            MaxResultCount = 500
        });
        return page.Items
            .Select(x => new ThTenantSelectDto { Id = x.Id, Name = x.Name })
            .OrderBy(x => x.Name)
            .ToList();
    }

    /// <inheritdoc />
    public virtual Task<ThCurrentTenantDto> GetCurrentTenantAsync()
    {
        return Task.FromResult(new ThCurrentTenantDto
        {
            TenantId = CurrentTenant.Id,
            TenantName = CurrentTenant.Name
        });
    }
}