frostfs-sdk-csharp/src/FrostFS.SDK.Client/Services/AccountingServiceProvider.cs
Pavel Gross 749000a090 [#28] Client: Apply code optimizations
Signed-off-by: Pavel Gross <p.gross@yadro.com>
2024-11-18 17:00:19 +03:00

40 lines
No EOL
1 KiB
C#

using System.Threading.Tasks;
using FrostFS.Accounting;
namespace FrostFS.SDK.Client;
internal sealed class AccountingServiceProvider : ContextAccessor
{
private readonly AccountingService.AccountingServiceClient? _accountingServiceClient;
internal AccountingServiceProvider(
AccountingService.AccountingServiceClient? accountingServiceClient,
ClientContext context)
: base(context)
{
_accountingServiceClient = accountingServiceClient;
}
internal async Task<Decimal> GetBallance(PrmBalance args)
{
var ctx = args.Context!;
BalanceRequest request = new()
{
Body = new()
{
OwnerId = ClientContext.Owner.OwnerID
}
};
request.AddMetaHeader(args.XHeaders);
request.Sign(ClientContext.Key.ECDsaKey);
var response = await _accountingServiceClient!.BalanceAsync(request, null, ctx.Deadline, ctx.CancellationToken);
Verifier.CheckResponse(response);
return response.Body.Balance;
}
}