45 lines
2.3 KiB
C#
45 lines
2.3 KiB
C#
using IdokladSdk.Models.BankAccount;
|
|
using IdokladSdk.Models.NumericSequence;
|
|
using IdokladSdk.Models.ReadOnly.VatRate;
|
|
using IdokladSdk.Response;
|
|
using Idoklad.Client;
|
|
|
|
namespace Idoklad.Services;
|
|
|
|
/// <summary>
|
|
/// Supporting registers: bank accounts, VAT rates and numeric (document) sequences.
|
|
/// </summary>
|
|
public sealed class RegistersService
|
|
{
|
|
private readonly IdokladApiAccessor _accessor;
|
|
|
|
public RegistersService(IdokladApiAccessor accessor) => _accessor = accessor;
|
|
|
|
// Bank accounts
|
|
public Task<Page<BankAccountListGetModel>> ListBankAccountsAsync(int page, int pageSize, string? filter, string? filterType, string? sort, CancellationToken ct)
|
|
=> _accessor.Api.BankAccountClient.List().GetPageAsync(page, pageSize, filter, filterType, sort, ct);
|
|
|
|
public async Task<BankAccountGetModel> BankAccountDetailAsync(int id, CancellationToken ct)
|
|
=> (await _accessor.Api.BankAccountClient.Detail(id).GetAsync(ct)).Unwrap();
|
|
|
|
public async Task<BankAccountGetModel> CreateBankAccountAsync(BankAccountPostModel model, CancellationToken ct)
|
|
=> (await _accessor.Api.BankAccountClient.PostAsync(model, ct)).Unwrap();
|
|
|
|
public async Task<BankAccountGetModel> UpdateBankAccountAsync(BankAccountPatchModel model, CancellationToken ct)
|
|
=> (await _accessor.Api.BankAccountClient.UpdateAsync(model, ct)).Unwrap();
|
|
|
|
public async Task<bool> DeleteBankAccountAsync(int id, CancellationToken ct)
|
|
=> (await _accessor.Api.BankAccountClient.DeleteAsync(id, ct)).Unwrap();
|
|
|
|
// VAT rates (read-only)
|
|
public Task<Page<VatRateListGetModel>> ListVatRatesAsync(int page, int pageSize, string? filter, string? filterType, string? sort, CancellationToken ct)
|
|
=> _accessor.Api.VatRateClient.List().GetPageAsync(page, pageSize, filter, filterType, sort, ct);
|
|
|
|
public async Task<VatRateGetModel> VatRateDetailAsync(int id, CancellationToken ct)
|
|
=> (await _accessor.Api.VatRateClient.Detail(id).GetAsync(ct)).Unwrap();
|
|
|
|
// Numeric sequences (read-only list)
|
|
public Task<Page<NumericSequenceGetModel>> ListNumericSequencesAsync(int page, int pageSize, string? filter, string? filterType, string? sort, CancellationToken ct)
|
|
=> _accessor.Api.NumericSequenceClient.List().GetPageAsync(page, pageSize, filter, filterType, sort, ct);
|
|
}
|