public async Task <TResponse> Post <TRequest, TResponse>(string path, TRequest request) where TRequest : class where TResponse : class { var client = new HttpClient(); var r = new HttpRequestMessage { // TODO a way to set this... RequestUri = new Uri($"https://localhost:5001{path}"), Method = HttpMethod.Post, Content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"), }; // request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("text/plain")); r.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = await client.SendAsync(r); // TODO all manner of error conditions here... string raw = await response.Content.ReadAsStringAsync(); ApiOkResponse <TResponse> responseObject = JsonConvert.DeserializeObject <ApiOkResponse <TResponse> >(raw); return(responseObject.Content); }
public async Task <IActionResult> GetWorkersIds() { var allWorkers = await workers.EntitiesAsEnumerableAsync(); var data = allWorkers.Where(w => !w.Name.Contains(AuthRoles.Admin) && !w.Name.Contains(AuthRoles.Manager)) .Select(w => new { id = w.Id, name = w.Name }); var response = new ApiOkResponse("Returning workers data", new { workers = data }); return(this.GetActionResult(response, logger)); }
public async Task <IActionResult> AddCarAsync([FromBody] AddCarRequestDto dto, CancellationToken cancellationToken = default(CancellationToken)) { var result = await _carService.AddCarAsync(dto, cancellationToken); if (result == null) { return(BadRequest(new ApiResponse(StatusCodes.Status400BadRequest))); } var response = new ApiOkResponse(result); return(Ok(response)); }
public async Task <IActionResult> GetCarById(int id, CancellationToken cancellationToken = default(CancellationToken)) { var result = await _carService.GetCarById(id, cancellationToken); if (result == null) { return(BadRequest(new ApiResponse(StatusCodes.Status400BadRequest))); } var response = new ApiOkResponse(result); return(Ok(response)); }
public async Task <IActionResult> RefreshToken([FromBody] RefreshTokenRequestDto dto, CancellationToken cancellationToken = default(CancellationToken)) { var tokenDto = _mapper.Map <TokenDto>(dto); if (!await _tokenService.CheckToken(tokenDto, cancellationToken)) { return(BadRequest(new ApiResponse(StatusCodes.Status400BadRequest))); } var newToken = await _tokenService.RefreshSecurityToken(tokenDto, cancellationToken); var response = new ApiOkResponse(newToken); return(Ok(response)); }
public void ReturnEansForRequestedVendor() { //Arrange HttpResponseMessage response = _client.GetAsync("api/v1/Product/NordsDropShip").Result; var responseString = response.Content.ReadAsStringAsync().Result; ApiOkResponse <object> apiResponse = JsonConvert.DeserializeObject <ApiOkResponse <object> >(responseString); var content = JsonConvert.DeserializeObject <Content <object> >(apiResponse.Content.Result.ToString()); var result = JsonConvert.DeserializeObject <List <Product> >(content.Result.ToString()); Assert.Equal((int)StatusCodes.Status200OK, (int)response.StatusCode); Assert.NotNull(result); }
public void InsertValidCSVFormattedProductListIn() { //Arrange string productcsv = TestCSV.GetTestCSV1(); var postContent = new StringContent(productcsv, Encoding.UTF8, "text/plain"); postContent.Headers.Remove("Content-Type"); postContent.Headers.Add("Content-Type", "text/plain"); HttpResponseMessage response = _client.PostAsync("api/v1/Product/", postContent).Result; var responseString = response.Content.ReadAsStringAsync().Result; ApiOkResponse <object> apiResponse = JsonConvert.DeserializeObject <ApiOkResponse <object> >(responseString); var content = JsonConvert.DeserializeObject <Content <object> >(apiResponse.Content.Result.ToString()); Assert.Equal((int)StatusCodes.Status201Created, (int)response.StatusCode); Assert.Equal("Success", content.Result.ToString()); }
public async Task <TResponse> GetAuth <TResponse>(string path) where TResponse : class { var client = new HttpClient(); var r = new HttpRequestMessage { RequestUri = new Uri($"https://localhost:5001{path}"), Method = HttpMethod.Get, }; r.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); r.Headers.Add("Authorization", $"Bearer {Instance.IdToken}"); HttpResponseMessage response = await client.SendAsync(r); // TODO all manner of error conditions here... string raw = await response.Content.ReadAsStringAsync(); ApiOkResponse <TResponse> responseObject = JsonConvert.DeserializeObject <ApiOkResponse <TResponse> >(raw); return(responseObject.Content); }
public override void OnResultExecuting(ResultExecutingContext context) { var url = $"{context.HttpContext.Request.Scheme}://{context.HttpContext.Request.Host}{context.HttpContext.Request.Path}{context.HttpContext.Request.QueryString}"; switch (context.Result) { case OkObjectResult okObj: var apiOkObjResult = new ApiOkResponse(okObj.Value, url); context.Result = new JsonResult(apiOkObjResult) { StatusCode = apiOkObjResult.StatusCode }; break; case OkResult: var apiOkResult = new ApiOkResponse(null, url); context.Result = new JsonResult(apiOkResult) { StatusCode = apiOkResult.StatusCode }; break; case ContentResult contentResult: var apicontentResult = new ApiOkResponse(contentResult.Content, url); context.Result = new JsonResult(apicontentResult) { StatusCode = apicontentResult.StatusCode }; break; case ObjectResult objResult: switch (objResult.StatusCode) { case 400: var apiBadRequestResult = new ApiBadRequestResponse(url, GetInformationDatas(objResult)); context.Result = new JsonResult(apiBadRequestResult) { StatusCode = apiBadRequestResult.StatusCode }; break; case 404: var apiNotFoundResult = new ApiNotFoundResponse(url, GetInformationDatas(objResult)); context.Result = new JsonResult(apiNotFoundResult) { StatusCode = apiNotFoundResult.StatusCode }; break; case 415: var apiUnSupportResult = new ApiUnSupportResponse(url); context.Result = new JsonResult(apiUnSupportResult) { StatusCode = apiUnSupportResult.StatusCode }; break; case null: if (objResult.Value is not ApiResponse) { var apiObjResult = new ApiOkResponse(objResult.Value, url); context.Result = new JsonResult(apiObjResult) { StatusCode = apiObjResult.StatusCode }; } break; } break; } base.OnResultExecuting(context); }
public OkObjectResult SuccessResponse(object data = null, string message = "操作成功") { ApiOkResponse response = new ApiOkResponse(data); return(Ok(response)); // 回傳200 }