Refactor client classes

This commit is contained in:
2025-08-24 18:20:57 +09:00
parent 1f025dd62e
commit a76d283936
55 changed files with 10900 additions and 0 deletions

View File

@ -0,0 +1,31 @@
using Hcs.Client.Internal;
using Hcs.Service.Async.Nsi;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace Hcs.Client.Api.Request.Nsi
{
internal class ExportDataProviderNsiItemRequest(ClientBase client) : NsiRequestBase(client)
{
internal async Task<IEnumerable<NsiItemType>> ExecuteAsync(exportDataProviderNsiItemRequestRegistryNumber registryNumber, CancellationToken token)
{
// http://open-gkh.ru/Nsi/exportDataProviderNsiItemRequest.html
var request = new exportDataProviderNsiItemRequest
{
Id = Constants.SIGNED_XML_ELEMENT_ID,
version = "10.0.1.2",
RegistryNumber = registryNumber,
};
var stateResult = await SendAndWaitResultAsync(request, async(portClient) =>
{
var response = await portClient.exportDataProviderNsiItemAsync(CreateRequestHeader(), request);
return response.AckRequest.Ack;
}, token);
return stateResult.Items.OfType<NsiItemType>();
}
}
}

View File

@ -0,0 +1,49 @@
using Hcs.Client.Api.Request;
using Hcs.Client.Api.Request.Adapter;
using Hcs.Service.Async.Nsi;
using System.Threading.Tasks;
namespace Hcs.Service.Async.Nsi
{
public partial class getStateResult : IGetStateResultMany { }
public partial class NsiPortsTypeAsyncClient : IAsyncClient<RequestHeader>
{
public async Task<IGetStateResponse> GetStateAsync(RequestHeader header, IGetStateRequest request)
{
return await getStateAsync(header, (getStateRequest)request);
}
}
public partial class getStateResponse : IGetStateResponse
{
public IGetStateResult GetStateResult => getStateResult;
}
public partial class AckRequestAck : IAck { }
public partial class ErrorMessageType : IErrorMessage { }
public partial class getStateRequest : IGetStateRequest { }
}
namespace Hcs.Client.Api.Request.Nsi
{
internal class NsiRequestBase(ClientBase client) :
RequestBase<getStateResult,
NsiPortsTypeAsyncClient,
NsiPortsTypeAsync,
RequestHeader,
AckRequestAck,
ErrorMessageType,
getStateRequest>(client)
{
protected override EndPoint EndPoint => EndPoint.NsiAsync;
protected override bool EnableMinimalResponseWaitDelay => true;
protected override bool CanBeRestarted => true;
protected override int RestartTimeoutMinutes => 20;
}
}