Add base route configuration support to TaxRateService

features/dockerBuild
Matija Koželj 2 years ago
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…
Cancel
Save