public async Task <GetAllJobsByFilterResponse> GetAllJobsByFilter(GetAllJobsByFilterRequest request) { string path = $"/api/GetAllJobsByFilter"; using (HttpResponseMessage response = await _httpClientWrapper.GetAsync(HttpClientConfigName.RequestService, path, request, CancellationToken.None).ConfigureAwait(false)) { string jsonResponse = await response.Content.ReadAsStringAsync(); var getJobsResponse = JsonConvert.DeserializeObject <ResponseWrapper <GetAllJobsByFilterResponse, RequestServiceErrorCode> >(jsonResponse); if (getJobsResponse.HasContent && getJobsResponse.IsSuccessful) { return(getJobsResponse.Content); } else { if (response.StatusCode == System.Net.HttpStatusCode.BadRequest) { throw new BadRequestException($"GetAllJobsByFilter Returned a bad request"); } else { throw new InternalServerException($"GetAllJobsByFilter Returned {jsonResponse}"); } } } }
public async Task <GetAllJobsByFilterResponse> GetAllJobsByFilterAsync(GetAllJobsByFilterRequest request) { var response = await PostAsync <BaseRequestHelpResponse <GetAllJobsByFilterResponse> >($"/api/GetAllJobsByFilter", request); if (response.HasContent && response.IsSuccessful) { return(response.Content); } throw new Exception("GetJobsByFilter call failed"); }
public async Task <IEnumerable <JobSummary> > GetJobsForUserAsync(int userId, bool waitForData, CancellationToken cancellationToken) { NotInCacheBehaviour notInCacheBehaviour = waitForData ? NotInCacheBehaviour.WaitForData : NotInCacheBehaviour.DontWaitForData; var jobs = await _memDistCache.GetCachedDataAsync(async (cancellationToken) => { var request = new GetAllJobsByFilterRequest { AllocatedToUserId = userId }; var response = await _requestHelpRepository.GetAllJobsByFilterAsync(request); return(response.JobSummaries); }, $"{CACHE_KEY_PREFIX}-user-{userId}-accepted-jobs", RefreshBehaviour.DontWaitForFreshData, cancellationToken, notInCacheBehaviour); if (jobs != null) { return(jobs.OrderOpenJobsForDisplay()); } throw new Exception($"Unable to get jobs for user {userId}"); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] GetAllJobsByFilterRequest req, CancellationToken cancellationToken) { try { _logger.LogInformation("GetAllJobsByFilter started"); GetAllJobsByFilterResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetAllJobsByFilterResponse, RequestServiceErrorCode> .CreateSuccessfulResponse(response))); } catch (PostCodeException exc) { _logger.LogErrorAndNotifyNewRelic($"{req.Postcode} is an invalid postcode", exc); return(new ObjectResult(ResponseWrapper <GetAllJobsByFilterResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.ValidationError, "Invalid Postcode")) { StatusCode = StatusCodes.Status400BadRequest }); } catch (InvalidFilterException exc) { _logger.LogErrorAndNotifyNewRelic($"invalid filter", exc); return(new ObjectResult(ResponseWrapper <GetAllJobsByFilterResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.ValidationError, "Invalid filter combination")) { StatusCode = StatusCodes.Status400BadRequest }); } catch (Exception exc) { _logger.LogErrorAndNotifyNewRelic("Exception occured in GetAllJobsByFilter", exc); return(new ObjectResult(ResponseWrapper <GetAllJobsByFilterResponse, RequestServiceErrorCode> .CreateUnsuccessfulResponse(RequestServiceErrorCode.InternalServerError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }