Пример #1
0
        public async Task <string> GetToken()
        {
            string AccessToken = String.Empty;

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(endPoint);
                //Lấy AccessToken
                string urlPath     = "api/token/gettoken";
                var    requestData = new ApiTokenRequest();
                requestData.AccessKey = accessKey;
                requestData.SecretKey = secretKey;

                var json = Newtonsoft.Json.JsonConvert.SerializeObject(requestData);
                var data = new System.Net.Http.StringContent(json, Encoding.UTF8, "application/json");

                var response = await client.PostAsync(urlPath, data);

                string result = response.Content.ReadAsStringAsync().Result;

                ApiTokenResponse apiToken = JsonConvert.DeserializeObject <ApiTokenResponse>(result);

                AccessToken = apiToken.Token;
            }
            return(AccessToken);
        }
        public async Task <IActionResult> Authenticate(UserLoginDto userLoginDto)
        {
            ApiTokenResponse response;
            var userLogin       = _mapper.Map <UserLoginDto, UserLogin>(userLoginDto);
            var resultUserLogin = await _userLoginService.GetByCredentials(userLogin);

            userLogin = resultUserLogin.Value;
            if (resultUserLogin.Status == ResultStatus.Error)
            {
                response = new ApiTokenResponse
                {
                    Title   = nameof(HttpStatusCode.InternalServerError),
                    Errors  = resultUserLogin.Errors,
                    Satatus = (int)HttpStatusCode.InternalServerError
                };
                return(StatusCode(StatusCodes.Status500InternalServerError, response));
            }
            if (userLogin == null)
            {
                response = new ApiTokenResponse {
                    Title   = nameof(HttpStatusCode.NotFound),
                    Satatus = (int)HttpStatusCode.NotFound
                };
                return(NotFound(response));
            }
            response = new ApiTokenResponse
            {
                Token   = _tokenService.GenerateToken(userLogin.User),
                Title   = nameof(HttpStatusCode.OK),
                Satatus = (int)HttpStatusCode.OK
            };
            return(Ok(response));
        }
Пример #3
0
        private async Task AddListItemAsync(HttpClient client, ApiTokenResponse tokenResponse, string listId, string description)
        {
            client.DefaultRequestHeaders.Remove("Authorization");
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {tokenResponse.AccessToken}");
            var response = await client.PostAsJsonAsync("/api/v1/item", new { listId, description });

            response.StatusCode.Should().Be(HttpStatusCode.OK);
        }
Пример #4
0
        private async Task GetListItemsAsync(HttpClient client, ApiTokenResponse tokenResponse, string listId)
        {
            client.DefaultRequestHeaders.Remove("Authorization");
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {tokenResponse.AccessToken}");
            var response = await client.GetAsync($"/api/v1/list/{listId}");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var listItemsResponse = await response.Content.ReadFromJsonAsync <ApiList>();

            listItemsResponse.Should().NotBeNull();
            listItemsResponse.Items.Should().HaveCount(2);
            listItemsResponse.Items.Select(x => x.Description).Should().BeEquivalentTo(new[] { "Test item 2", "Test item 3" });
        }
Пример #5
0
        private async Task <ApiListResponse> GetListsAsync(HttpClient client, ApiTokenResponse tokenResponse)
        {
            client.DefaultRequestHeaders.Remove("Authorization");
            client.DefaultRequestHeaders.Add("Authorization", $"Bearer {tokenResponse.AccessToken}");
            var response = await client.GetAsync("/api/v1/list");

            response.StatusCode.Should().Be(HttpStatusCode.OK);
            var listResponse = await response.Content.ReadFromJsonAsync <ApiListResponse>();

            listResponse.Should().NotBeNull();
            listResponse.Lists.Should().HaveCount(1);
            listResponse.Lists.Single().Name.Should().Be("Test list");
            return(listResponse);
        }
Пример #6
0
        public async Task <ApiTokenResponse> GetToken()
        {
            ApiTokenResponse result = null;
            var httpClient          = new RestClient(_apiUrl);
            var request             = GetTokenRequest();

            _logger.WriteInformation("Getting Token");
            try
            {
                IRestResponse <ApiTokenResponse> response = await httpClient.ExecuteTaskAsync <ApiTokenResponse>(request);

                if (response.IsSuccessful)
                {
                    result = response.Data;
                }
            }
            catch (Exception ex)
            {
                _logger.WriteError("Error calling Token APi", ex);
            }
            _logger.WriteInformation("Received Token");
            return(result);
        }
Пример #7
0
        public async Task Connect()
        {
            ApiTokenResponse tokenresponse = await RequestApiToken();

            ApiToken = tokenresponse.Token;
        }
Пример #8
0
 public void AddToken(int mandatorId, ApiTokenResponse tokenResponse)
 {
     _cachedTokens[mandatorId] = tokenResponse;
 }