public async Task <TeamAgentModel?> GetTeamAgent(string agentId) { LoggingService.Trace("Querying TeamAgentsDatabase.GetTeamAgent"); if (string.IsNullOrEmpty(agentId)) { return(null); } var databaseConnection = await GetDatabaseConnection <TeamAgentDatabaseModel>().ConfigureAwait(false); var dbLock = databaseConnection.GetConnection().Lock(); try { var teamAgentDatabaseModel = databaseConnection.GetConnection().Get <TeamAgentDatabaseModel>(agentId); return(teamAgentDatabaseModel != null? TeamAgentDatabaseModel.ToTeamAgentModel(teamAgentDatabaseModel) : null); } catch (Exception e) { LoggingService.Error(e, "Error Querying TeamAgentsDatabase.GetTeamAgent"); return(null); } finally { dbLock.Dispose(); } }
public async Task <List <TeamAgentModel> > GetAgentsInTeams(IList <string> teamIds) { LoggingService.Trace("Querying TeamAgentsDatabase.GetAgentsInTeams"); if (teamIds.IsNullOrEmpty()) { return(new List <TeamAgentModel>()); } var databaseConnection = await GetDatabaseConnection <TeamAgentDatabaseModel>().ConfigureAwait(false); var dbLock = databaseConnection.GetConnection().Lock(); try { var teamAgentDatabaseModels = databaseConnection.GetConnection().GetAllWithChildren <TeamAgentDatabaseModel>(); return(teamAgentDatabaseModels? .Where(x => teamIds.Any(id => x.Teams.Any(t => t.TeamId.Equals(id)))) .Select(x => TeamAgentDatabaseModel.ToTeamAgentModel(x)) .ToList() ?? new List <TeamAgentModel>()); } catch (Exception e) { LoggingService.Error(e, "Error Querying TeamAgentsDatabase.GetAgentsInTeams"); return(new List <TeamAgentModel>()); } finally { dbLock.Dispose(); } }