public static HttpOperationResponse <object> MockSearchResults(CoordinatesResponse coordinatesResponse, int searchResultsCount = 200) { var _result = new HttpOperationResponse <object>(); _result.Request = new HttpRequestMessage(); _result.Response = new HttpResponseMessage(HttpStatusCode.OK); var vacancyResults = new VacancySearchResults(); var results = new List <Result>(); while (results.Count != searchResultsCount) { var random = new Random(); var id = results.Count + 1; results.Add(new Result() { Location = new Vacancies.Api.Models.Location() { Latitude = coordinatesResponse.Coordinates.Lat, Longitude = coordinatesResponse.Coordinates.Lon }, Title = $"Vacancy {id}", ShortDescription = "short description of vacancy", DistanceInMiles = random.NextDouble() * 100, VacancyReference = id, TrainingType = (id % 2 == 0) ? TrainingType.Framework : TrainingType.Standard }); } vacancyResults.Results = results.ToArray(); _result.Body = vacancyResults; return(_result); }
private void SendCoordinates(string sessionQeueu) { CoordinatesResponse response = new CoordinatesResponse { Coordinates = ClientsList.ToArray() }; channel.BasicPublish(exchange: "", routingKey: sessionQeueu, basicProperties: null, body: response.Serializer()); }
public static Coordinates MapToCoordinates(this CoordinatesResponse response) { return(new Coordinates { Latitude = response.Lat, Longitude = response.Lon }); }
private List <Result> GetVacancyList(int distance, CoordinatesResponse coordinates, int pageNumber = 1) { var result = (HttpOperationResponse <object>)_vacanciesApi.SearchApprenticeshipVacancies( coordinates.Coordinates.Lat, coordinates.Coordinates.Lon, pageNumber, 250, distance); var vacancyList = ((VacancySearchResults)(result).Body).Results.ToList(); return(vacancyList); }
public HttpResponseMessage Post([FromBody] CoordinatesRequest request) { Coordinates Coordinates = new Coordinates(); try { if (request.branch != null) { var list = GInfraEntities.sp_polygon(request.branch).ToList(); if (list.Count > 0) { foreach (var k in list) { CoordinatesResponse CoordinatesResponse = new CoordinatesResponse(); CoordinatesResponse.Lattitude = k.lattitude.ToString(); CoordinatesResponse.Longtitude = k.longitude.ToString(); Coordinates.Data.Add(CoordinatesResponse); } Coordinates.Status = true; Coordinates.Message = "Data Fetched Successfully"; return(Request.CreateResponse(HttpStatusCode.OK, Coordinates)); } else { Coordinates.Status = false; Coordinates.Message = "No Record Found"; return(Request.CreateResponse(HttpStatusCode.OK, Coordinates)); } } else { Coordinates.Status = false; Coordinates.Message = "BadRequest"; return(Request.CreateResponse(HttpStatusCode.OK, Coordinates)); } } catch (Exception ex) { Coordinates.Status = false; Coordinates.Message = "" + ex + ""; return(Request.CreateResponse(HttpStatusCode.InternalServerError, Coordinates)); } }
private async Task <List <Result> > GetVacancyListByRoute(string routeId, int distance, CoordinatesResponse coordinates, int pageNumber = 1) { var standards = await _standardsRepository.GetByRoute(routeId); var result = (HttpOperationResponse <object>)_vacanciesApi.SearchApprenticeshipVacancies( coordinates.Coordinates.Lat, coordinates.Coordinates.Lon, pageNumber, 250, distance, string.Join(",", standards)); if (!result.Response.IsSuccessStatusCode) { _logger.LogError($"Unable to get vacancies for {routeId} from api: {result.Response.Content.ReadAsStringAsync().Result}"); throw new HttpOperationException(result.Response.Content.ReadAsStringAsync().Result); } var vacancyList = ((VacancySearchResults)(result).Body).Results.ToList(); return(vacancyList); }
public async Task <CoordinatesResponse> GetFromPostCode(string postcode) { var coordinates = new Coordinates(); var uri = new Uri(_postcodeConfiguration.Url + "postcodes/" + postcode.Replace(" ", string.Empty)); try { var stopwatch = Stopwatch.StartNew(); var response = await _retryWebRequests.Retry(() => _retryWebRequests.MakeRequestAsync(uri.ToString()), CouldntConnect); stopwatch.Stop(); var responseTime = stopwatch.ElapsedMilliseconds; if (response.IsSuccessStatusCode) { var value = await response.Content.ReadAsStringAsync(); var result = JsonConvert.DeserializeObject <PostCodeResponse>(value); if (!result.Result.Latitude.HasValue || !result.Result.Longitude.HasValue) { return(new CoordinatesResponse { Coordinates = null, ResponseCode = LocationLookupResponse.MissingCoordinates }); } coordinates.Lat = result.Result.Latitude.Value; coordinates.Lon = result.Result.Longitude.Value; SendDependencyLog(response.StatusCode, uri, responseTime); var coordinateResponse = new CoordinatesResponse { Coordinates = coordinates, Country = result.Result.Country, ResponseCode = LocationLookupResponse.Ok }; return(coordinateResponse); } if (response.StatusCode == HttpStatusCode.InternalServerError) { LogInformation(postcode, uri, response, responseTime, "Postcodes.IO-ServerError", "Server error trying to find postcode"); return(new CoordinatesResponse { Coordinates = null, ResponseCode = LocationLookupResponse.ServerError }); } LogInformation(postcode, uri, response, responseTime, "Postcodes.IO-PostCodeNotFound", "Unable to find coordinates for postcode"); return(new CoordinatesResponse { Coordinates = null, ResponseCode = LocationLookupResponse.WrongPostcode }); } catch (Exception ex) { _logger.LogError(ex, $"Unable to connect to Postcode lookup servce. Url: {uri}"); throw new Exception("Unable to connect to Post Code Lookup service", ex); } }