public async Task <TokenResponse> Get(IQuery <Credentials> query)
        {
            var cacheKey = GenerateCacheKey(query.Payload);

            if (_cache.TryGet(cacheKey, out var result))
            {
                return(result);
            }

            result = await _queryHandler.Get(query);

            _cache.Add(query.Payload.Username, result);

            return(result);
        }
示例#2
0
        public async Task <TResult> Get(IQuery <TPayload> query)
        {
            try
            {
                _logger.Info("Handling {query}: started", query);

                var result = await _queryHandler.Get(query);

                _logger.Info("Handling {query}: finished with {result}", query, result);

                return(result);
            }
            catch (Exception e)
            {
                _logger.Error("Error occured: {exception}", e);
                throw;
            }
        }
        public async Task <Server[]> Get(IQuery <string> query)
        {
            try
            {
                var result = await _queryHandler.Get(query);

                return(result);
            }
            catch (ServerQueryException e)
            {
                _logger.Error("Error occured in quering server list: {exception}", e);
                throw;
            }
            catch (Exception e)
            {
                _logger.Error("Fatal failure: {exception}", e);
                throw;
            }
        }
        public async Task <TokenResponse> Get(IQuery <Credentials> query)
        {
            try
            {
                var result = await _queryHandler.Get(query);

                return(result);
            }
            catch (TokenQueryException e)
            {
                _logger.Error("Error occured in quering token: {exception}", e);
                throw;
            }
            catch (Exception e)
            {
                _logger.Error("Fatal failure: {exception}", e);
                throw;
            }
        }
示例#5
0
        public async Task <Server[]> Get(string token)
        {
            Ensure.That(token, nameof(token)).IsNotNullOrWhiteSpace();

            try
            {
                var result =
                    await _queryHandler.Get(
                        new ServerQuery
                {
                    Payload = token
                });

                return(result);
            }
            catch (ServerQueryException e)
            {
                throw new ServersServiceException("Getting servers failed", e);
            }
        }
        public async Task <string> Authenticate(Credentials credentials)
        {
            Ensure.That(credentials, nameof(credentials)).IsNotNull();
            Ensure.That(credentials.Username, nameof(credentials.Username)).IsNotNullOrWhiteSpace();
            Ensure.That(credentials.Password, nameof(credentials.Password)).IsNotNullOrWhiteSpace();

            try
            {
                var result =
                    await _queryHandler.Get(
                        new TokenQuery
                {
                    Payload = credentials
                });

                return(result.Token);
            }
            catch (TokenQueryException e)
            {
                throw new AuthenticationServiceException("Authentication failed", e);
            }
        }