Пример #1
0
        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();
            }
        }
Пример #2
0
        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();
            }
        }