private static decimal GetAmount(ExpenseDistribution distribution, decimal total, double multiplier, int payersCount, decimal payerAmount) { switch (distribution) { case ExpenseDistribution.Proportional: return(total * (decimal)multiplier); case ExpenseDistribution.Even: return(total / payersCount); default: return(payerAmount); } }
internal static decimal GetAmount(this ExpenseDistribution distribution, RegisterExpense expense, RegisterExpensePayer payer) => GetAmount(distribution, expense.Total, payer.Multiplier, expense.Payers.Count(), payer.Amount);