예제 #1
0
        public async Task <ApiResponse <bool> > ValidateApplicationKey(
            ValidateKeyRequest request,
            CancellationToken token = default)
        {
            if (request is null)
            {
                return(ApiResponse <bool> .CreateNullRequestResponse());
            }

            // проверяем модель запроса
            if (!request.SelfValidate(out var validateMessage))
            {
                return(ApiResponse <bool> .CreateFailed(validateMessage));
            }

            var json    = JSON.Serialize(request);
            var payload = new StringContent(json, Encoding.UTF8, "application/json");

            using var apiResponse = await _httpClient.PostAsync("auth/validate", payload);

            if (!apiResponse.IsSuccessStatusCode)
            {
                var message = await apiResponse.Content.ReadAsStringAsync();

                message = !string.IsNullOrWhiteSpace(message) ? message : apiResponse.StatusCode.ToString();
                return(ApiResponse <bool> .CreateFailed(message));
            }

            using TextReader streamReader = new StreamReader(await apiResponse.Content.ReadAsStreamAsync());
            var resultData = Jil.JSON.Deserialize <bool>(streamReader);

            return(ApiResponse <bool> .CreateSuccess(resultData));
        }
예제 #2
0
        private async Task ExecuteTestSequenceAsync()
        {
            // тесты самого сервиса
            var result = await _keyValidator.GetAllKnownApplicationsAsync();

            var isValid = await _keyValidator.GetPermittedApplicationsAsync("Tort");

            var request     = new ApplicationCodeAuthKeyValidateRequest("Nep", "Tort", "1");
            var validateKey = await _keyValidator.ValidateKeyAsync(request);

            //тесты апи
            var apiRequest     = new ValidateKeyRequest("Nep", "Tort", "1");
            var isValidFromApi = await _keyCheckerApiClient.ValidateApplicationKey(apiRequest);

            if (isValidFromApi)
            {
                Console.WriteLine("Апи сработало. Ну и отлично.");
            }
        }
예제 #3
0
        public async Task <IActionResult> ValidateKey([FromBody] ValidateKeyRequest validateKeyRequest)
        {
            // валидация модели запроса
            if (validateKeyRequest is null)
            {
                _logger.LogWarning("В запрос на валидацию пришла пустая модель");
                return(BadRequest("В запрос пришла пустая модель"));
            }

            else if (!validateKeyRequest.SelfValidate(out var validateMessage))
            {
                _logger.LogWarning(validateMessage);
                return(BadRequest(validateMessage));
            }

            // собственно выполнение запроса

            var validateApplicationRequest = _mapper.Map <ApplicationCodeAuthKeyValidateRequest>(validateKeyRequest);

            var result = await _authKeyValidator.ValidateKeyAsync(validateApplicationRequest);

            return(Ok(result));
        }