public void Lend(User borrower, double amount) { if (Owes.ContainsKey(borrower.Name)) { amount = Owes[borrower.Name] - amount; if (amount > 0) { Owes[borrower.Name] = amount; return; } Owes.Remove(borrower.Name); amount *= -1; } if (amount > 0) { if (OwedBy.ContainsKey(borrower.Name)) { OwedBy[borrower.Name] += amount; } else { OwedBy.Add(borrower.Name, amount); OwedBy = OwedBy.OrderBy(x => x.Key).ToDictionary(x => x.Key, x => x.Value); } } }
private void UpdateDebtForUser(User user, decimal debt) { if (debt >= 0) { OwedBy[user.Name] = Math.Abs(debt); Owes.Remove(user.Name); } else { Owes[user.Name] = Math.Abs(debt); OwedBy.Remove(user.Name); } }