internal static Uri ComposeGetElectricityUnitRatesUri(string productCode, string tariffCode, ElectricityUnitRate rate, DateTimeOffset?from, DateTimeOffset?to) { Preconditions.IsNotNullOrWhiteSpace(productCode, nameof(productCode)); Preconditions.IsNotNullOrWhiteSpace(tariffCode, nameof(tariffCode)); return(new Uri($"{BaseUrl}/v1/products/{productCode}/electricity-tariffs/{tariffCode}/{GetRateString()}-unit-rates/") .AddQueryParam("page_size", MaxTariffsPageSize) .AddQueryParam("period_from", from) .AddQueryParam("period_to", to)); string GetRateString() { switch (rate) { case ElectricityUnitRate.Standard: return("standard"); case ElectricityUnitRate.Day: return("day"); case ElectricityUnitRate.Night: return("night"); default: throw new ArgumentOutOfRangeException(nameof(rate)); } } }
public async Task <IEnumerable <Charge> > GetElectricityUnitRatesAsync(string productCode, string tariffCode, ElectricityUnitRate rate = ElectricityUnitRate.Standard, DateTimeOffset?from = null, DateTimeOffset?to = null) { return(await GetCollectionAsync <Charge>(ComposeGetElectricityUnitRatesUri(productCode, tariffCode, rate, from, to))); }