예제 #1
0
        public async Task <long> BalanceAsync(Guid lenderId, Guid lendeeId, string code)
        {
            var from = await _context.Participants.FirstOrDefaultAsync(c => c.Id == lenderId);

            var to = await _context.Participants.FirstOrDefaultAsync(c => c.Id == lendeeId);

            var lended   = _context.Entry(from).Collection(c => c.Lended).Query().Where(c => c.Lendee == to && c.Amount.Currency.Code == code).Sum(c => c.Amount.Value);
            var borrowed = _context.Entry(from).Collection(c => c.Borrowed).Query().Where(c => c.Lender == to && c.Amount.Currency.Code == code).Sum(c => c.Amount.Value);

            return(lended - borrowed);
        }