public async Task <List <CandidateDto> > GetActiveCandidates()
        {
            List <CandidateDto> candidates = new List <CandidateDto>();

            _logger.LogInformation($"Number of active requestor connections: {_requestorConnections.Count()}");

            foreach (var activeRequestorName in _requestorConnections.Keys())
            {
                GeoCoordinatesEntity entity;
                try
                {
                    entity = _dbContext.GeoCoordinates.Single(x => x.Username == activeRequestorName._value);

                    candidates.Add(new CandidateDto(activeRequestorName._value, new GeoCoordinatesDto()
                    {
                        latitude  = entity.latitude,
                        longitude = entity.longitude
                    }));
                }
                catch (System.InvalidOperationException)
                {
                    _logger.LogWarning($"Failed to find requestor '{activeRequestorName._value}' in active connections.");
                }
            }

            _logger.LogInformation($"Sending request back with {candidates.Count} CandidateDto's");
            return(candidates);
        }
示例#2
0
        private void AddUserToConnectionMap(UsernameVo username)
        {
            // Check if user is already existent in connection map
            if (requestorConnections.ContainsKey(username))
            {
                requestorConnections.AddValueToSet(username, Context.ConnectionId);
            }
            else
            {
                requestorConnections.Add(username, Context.ConnectionId);
            }

            _logger.LogInformation($"Number of users in donatorConnections: {requestorConnections.Count()}");
        }