public Goal GetGoalById(string goalId, string clientId) { MongoDatabase database = new MongoDatabase(databaseName, connectionString); Goal goal = database.LoadRecordById <Goal>(tableName, goalId, nameof(Goal.Id)); Account account = new AccountDataService(connectionString).GetAccountById(goal.AccountId, clientId); goal.CurrentAmount = account?.CurrentBalance; goal.AccountName = account?.AccountName; return(goal.ClientId != clientId ? null : goal); }
public List <Goal> GetGoals(string clientId) { MongoDatabase database = new MongoDatabase(databaseName, connectionString); var filter = Builders <Goal> .Filter.Eq(nameof(Goal.ClientId), clientId); List <Goal> goals = database.LoadRecordsByFilter(tableName, filter); foreach (IGrouping <string, Goal> accountGoals in goals.GroupBy(g => g.AccountId)) { Account account = new AccountDataService(connectionString).GetAccountById(accountGoals.Key, clientId); if (account == null) { continue; } foreach (Goal accountGoal in accountGoals) { accountGoal.CurrentAmount = account.CurrentBalance; accountGoal.AccountName = account.AccountName; } } return(goals); }