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