List<UserNode> BuildPaymentGraph(ServiceClient sc, int group, int window) { var users = sc.GetAllUsersInGroup(group); List<UserNode> nodes = new List<UserNode>(); foreach (var usr in users) { var newNode = new UserNode() { UserId = usr.Id }; var trans = GetAllTransactionsForUser(window, usr.Id, group, sc); foreach (var usr2 in users) { newNode.EdgeWeight[usr2.Id] = GetUserDebtTo(usr.Username, usr2.Username, trans); } nodes.Add(newNode); } return nodes; }