public UsageCost(Tariff tariff, decimal?gasPrice, decimal?powerPrice, TaxedValue total) { GasPrice = gasPrice; PowerPrice = powerPrice; Tariff = tariff; Total = total; }
private static UsageCost CostForTariff(Tariff tariff, Kwh <Power>?powerUsage, Kwh <Gas>?gasUsage) { var g = tariff.GasRate * gasUsage + tariff.StandingCharge * 12; var p = tariff.PowerRate * powerUsage + tariff.StandingCharge * 12; var total = TaxedValue.FromPreTaxValue((g ?? 0) + (p ?? 0), TaxHelper.ApplyTax); return(new UsageCost(tariff, g, p, total)); }
private static Kwh <TFuel>?AnnualFuelUsage <TFuel>(decimal?rate, decimal standingCharge, TaxedValue monthlyBudget) => !rate.HasValue ? new Kwh <TFuel>?() : new Kwh <TFuel>((monthlyBudget.PreTax - standingCharge) * 12 * rate.Value);
public static Kwh <Power>?AnnualPowerUsage(Tariff tariff, TaxedValue monthlyBudget) => AnnualFuelUsage <Power>(tariff.PowerRate, tariff.StandingCharge, monthlyBudget);
public static Kwh <Gas>?AnnualGasUsage(Tariff tariff, TaxedValue monthlyBudget) => AnnualFuelUsage <Gas>(tariff.GasRate, tariff.StandingCharge, monthlyBudget);