Example #1
0
    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);
            }
        }
    }
Example #2
0
 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);
     }
 }
Example #3
0
        public int Edit([FromBody] Owes owes)

        {
            return(us.UpdateOwes(owes));
        }
Example #4
0
        public int Create([FromBody] Owes owes)

        {
            return(us.AddOwes(owes));
        }
Example #5
0
 private decimal OwesUser(User user) => Owes.TryGetValue(user.Name, out var owesAmount) ? owesAmount : 0.0m;