Add mocked broker client

This commit is contained in:
2025-10-09 19:12:30 +09:00
parent bb91136d42
commit 209cd79f01
32 changed files with 809 additions and 225 deletions

View File

@ -8,60 +8,43 @@ using System.Security.Cryptography.X509Certificates;
namespace Hcs.Broker
{
/// <summary>
/// Клиент для вызова всех реализованных функций интеграции с ГИС ЖКХ
/// </summary>
public class Client
/// <inheritdoc cref="IClient"/>
public class Client : IClient
{
/// <summary>
/// Идентификатор поставщика данных ГИС ЖКХ
/// </summary>
/// <inheritdoc cref="IClient"/>
public string OrgPPAGUID { get; set; }
/// <summary>
/// Исполнитель/сотрудник ГИС ЖКХ, от которого будут регистрироваться ответы
/// </summary>
/// <inheritdoc cref="IClient"/>
public string ExecutorGUID { get; set; }
/// <summary>
/// Признак, указывающий на то, что используется ли внешний туннель (stunnel)
/// </summary>
/// <inheritdoc cref="IClient"/>
public bool UseTunnel { get; set; }
/// <summary>
/// Если true, то запросы будут выполняться на промышленном стенде, иначе - на тестовом
/// </summary>
/// <inheritdoc cref="IClient"/>
public bool IsPPAK { get; set; }
/// <summary>
/// Роль
/// </summary>
/// <inheritdoc cref="IClient"/>
public OrganizationRole Role { get; set; }
/// <summary>
/// Устанавливаемый пользователем приемник отладочных сообщений
/// </summary>
/// <inheritdoc cref="IClient"/>
public ILogger Logger { get; set; }
/// <summary>
/// Устанавливаемый пользователем механизм перехвата содержимого отправляемых
/// и принимаемых пакетов
/// </summary>
/// <inheritdoc cref="IClient"/>
public IMessageCapturer MessageCapturer { get; set; }
public BillsApi Bills => new(this);
public IBillsApi Bills => new BillsApi(this);
public DeviceMeteringApi DeviceMetering => new(this);
public IDeviceMeteringApi DeviceMetering => new DeviceMeteringApi(this);
public HouseManagementApi HouseManagement => new(this);
public IHouseManagementApi HouseManagement => new HouseManagementApi(this);
public NsiApi Nsi => new(this);
public INsiApi Nsi => new NsiApi(this);
public NsiCommonApi NsiCommon => new(this);
public INsiCommonApi NsiCommon => new NsiCommonApi(this);
public OrgRegistryCommonApi OrgRegistryCommon => new(this);
public IOrgRegistryCommonApi OrgRegistryCommon => new OrgRegistryCommonApi(this);
public PaymentsApi Payments => new(this);
public IPaymentsApi Payments => new PaymentsApi(this);
/// <summary>
/// Сертификат клиента для применения при формировании запросов