public IActionResult GetService([FromRoute] GetServiceByIdRequest requestParams) //if user doens't input anything, then it will be 0 by default!!! { var usecaseResult = _servicesUseCase.ExecuteGet(requestParams); if (usecaseResult != null) { return(Ok(usecaseResult)); } return(NotFound(new ErrorResponse($"Service with an Id: {requestParams.Id} was not found."))); }
public GetServiceResponse ExecuteGet(GetServiceByIdRequest requestParams) { var servicesGatewayResponse = _servicesGateway.GetService(requestParams.Id); var usecaseResponse = servicesGatewayResponse.ToResponse(); if (usecaseResponse == null) { return(null); } usecaseResponse.Metadata.PostCode = requestParams.PostCode; if (!string.IsNullOrEmpty(requestParams.PostCode)) { try { Coordinate?postcodeCoord = _addressesGateway.GetPostcodeCoordinates(requestParams.PostCode); if (postcodeCoord.HasValue) { usecaseResponse.Metadata.PostCodeLatitude = postcodeCoord.Value.Latitude; usecaseResponse.Metadata.PostCodeLongitude = postcodeCoord.Value.Longitude; foreach (var location in usecaseResponse.Service.Locations) { if (location.Latitude.HasValue && location.Longitude.HasValue) { location.Distance = GeoCalculator.GetDistance( postcodeCoord.Value, new Coordinate(location.Latitude.Value, location.Longitude.Value), decimalPlaces: 1, DistanceUnit.Miles ) + " miles"; } } } else { usecaseResponse.Metadata.Error = "Postcode coordinates not found."; } } catch (Exception ex) { usecaseResponse.Metadata.Error = ex.Message; } } return(usecaseResponse); }
public async Task <IActionResult> GetServiceById(GetServiceByIdRequest request) { var model = await _service.GetServiceByIdAsync(request.ServiceId); if (model == null) { return(BadRequest()); } var response = new WebServiceResponse { Code = "success", Message = "get.services.success", Data = model }; return(Ok(model)); }