Add base route configuration support to TaxRateService
This commit is contained in:
parent
820a698a9f
commit
a7092ec705
@ -1,4 +1,5 @@
|
||||
using System.Collections.Immutable;
|
||||
using Connected.Configuration;
|
||||
using Connected.Net;
|
||||
using Connected.Remote;
|
||||
using Connected.ServiceModel;
|
||||
@ -10,47 +11,62 @@ namespace Connected.Common.Types.TaxRates;
|
||||
/// This is the client implementation of the <see cref="ITaxRateService"/>.
|
||||
/// </summary>
|
||||
internal class TaxRateService : EntityService<int>, ITaxRateService, IRemoteService
|
||||
{
|
||||
public TaxRateService(IHttpService http)
|
||||
{
|
||||
public TaxRateService(IHttpService http, IConfigurationService configurationService)
|
||||
{
|
||||
Http = http;
|
||||
ConfigurationService = configurationService;
|
||||
}
|
||||
|
||||
private IHttpService Http { get; }
|
||||
|
||||
private IConfigurationService ConfigurationService { get; }
|
||||
|
||||
private string GetBaseAddress()
|
||||
{
|
||||
var serviceConfigurations = ConfigurationService.Remote.Query(nameof(TaxRateService));
|
||||
|
||||
foreach (var configuration in serviceConfigurations)
|
||||
{
|
||||
if (!string.IsNullOrWhiteSpace(configuration?.Address))
|
||||
return configuration.Address;
|
||||
}
|
||||
|
||||
throw new Exception("No base address registered for TaxRateService");
|
||||
}
|
||||
|
||||
public async Task Delete(PrimaryKeyArgs<int> e)
|
||||
{
|
||||
await Http.Post("http://localhost:5063/management/commonTypes/taxRates/delete", e);
|
||||
await Http.Post($"{GetBaseAddress()}/management/commonTypes/taxRates/delete", e);
|
||||
}
|
||||
|
||||
public async Task<int> Insert(InsertTaxRateArgs e)
|
||||
{
|
||||
return await Http.Post<int>("http://localhost:5063/management/commonTypes/taxRates/insert", e);
|
||||
return await Http.Post<int>($"{GetBaseAddress()}/management/commonTypes/taxRates/insert", e);
|
||||
}
|
||||
|
||||
public async Task<ImmutableList<ITaxRate>?> Query(PrimaryKeyListArgs<int> e)
|
||||
{
|
||||
return (await Http.Post<List<TaxRate>?>("http://localhost:5063/management/commonTypes/taxRates/select", e)).ToImmutableList<ITaxRate>();
|
||||
return (await Http.Post<List<TaxRate>?>($"{GetBaseAddress()}/management/commonTypes/taxRates/select", e))?.ToImmutableList<ITaxRate>() ?? ImmutableList<ITaxRate>.Empty;
|
||||
}
|
||||
|
||||
public async Task<ImmutableList<ITaxRate>?> Query(QueryArgs? args)
|
||||
{
|
||||
return (await Http.Post<List<TaxRate>?>("http://localhost:5063/management/commonTypes/taxRates/query", args ?? QueryArgs.NoPaging)).ToImmutableList<ITaxRate>();
|
||||
return (await Http.Post<List<TaxRate>?>($"{GetBaseAddress()}/management/commonTypes/taxRates/query", args ?? QueryArgs.NoPaging))?.ToImmutableList<ITaxRate>() ?? ImmutableList<ITaxRate>.Empty;
|
||||
}
|
||||
|
||||
public async Task<ITaxRate?> Select(PrimaryKeyArgs<int> e)
|
||||
{
|
||||
return await Http.Post<TaxRate>("http://localhost:5063/management/commonTypes/taxRates/select", e);
|
||||
return await Http.Post<TaxRate>($"{GetBaseAddress()}/management/commonTypes/taxRates/select", e);
|
||||
}
|
||||
|
||||
public async Task<ITaxRate?> Select(TaxRateArgs e)
|
||||
{
|
||||
return await Http.Post<TaxRate>("http://localhost:5063/management/commonTypes/taxRates/select", e);
|
||||
return await Http.Post<TaxRate>($"{GetBaseAddress()}/management/commonTypes/taxRates/select", e);
|
||||
}
|
||||
|
||||
public async Task Update(UpdateTaxRateArgs e)
|
||||
{
|
||||
await Http.Post<TaxRate>("http://localhost:5063/management/commonTypes/taxRates/update", e);
|
||||
await Http.Post<TaxRate>($"{GetBaseAddress()}/management/commonTypes/taxRates/update", e);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user