using Hcs.ClientApi.DataTypes;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace Hcs.ClientApi.OrgRegistryCommonApi
{
public class HcsOrgRegistryCommonApi
{
public HcsClientConfig Config { get; private set; }
public HcsOrgRegistryCommonApi(HcsClientConfig config)
{
this.Config = config;
}
///
/// Возвращает ГУИДы действующих организаций в ГИС ЖКХ по номеру ОГРН (КПП может быть не указан).
/// Если организации не найдены, возвращается пустой список.
///
public async Task> GetOrgRootEntityGuidByOgrn(
string ogrn, string kpp, CancellationToken token = default)
{
var orgs = await GetOrgByOgrn(ogrn, kpp, token);
return orgs.Where(x => x.Действующая).Select(x => x.ГуидОрганизации);
}
///
/// Возвращает карточки организации в ГИС ЖКХ по номеру ОГРН (КПП может быть не указан).
/// Если организации не найдены, возвращается пустой список.
///
public async Task> GetOrgByOgrn(
string ogrn, string kpp, CancellationToken token = default)
{
try
{
var method = new HcsMethodExportOrgRegistry(Config);
return await method.GetOrgByOgrn(ogrn, kpp, token);
}
catch (HcsNoResultsRemoteException)
{
return [];
}
}
}
}