public async Task <IActionResult> PostReservationVehicleAsync(VehicleReservationRequest vehicleReservationRequest) { var result = await vehicleProvider.PostReservationVehicleAsync(vehicleReservationRequest); if (result.IsSuccess) { return(Ok(result.Vehicle)); } return(NotFound()); }
public async Task <(bool IsSuccess, Vehicle Vehicle, string ErrorMessage)> PostReservationVehicleAsync(VehicleReservationRequest reservationRequest) { try { var requestContent = JsonSerializer.Serialize(reservationRequest); var buffer = System.Text.Encoding.UTF8.GetBytes(requestContent); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var client = httpClientFactory.CreateClient("VehiclesService"); var response = await client.PostAsync($"api/vehicles/reservationvehicle", byteContent); if (response.IsSuccessStatusCode) { var content = await response.Content.ReadAsByteArrayAsync(); var options = new JsonSerializerOptions() { PropertyNameCaseInsensitive = true }; var result = JsonSerializer.Deserialize <Vehicle>(content, options); return(true, result, null); } return(false, null, response.ReasonPhrase); } catch (Exception ex) { logger.LogError(ex.ToString()); return(false, null, ex.Message); } }
public async Task <(bool IsSuccess, Models.ViewModels.Vehicle Vehicle, string ErrorMessage)> PostReservationVehicleAsync(VehicleReservationRequest vehicleReservationRequest) { try { var vehicle = await dBContext.Vehicles.Include(m => m.CarModel).Include(m => m.CarModel.Make).Include(m => m.CarModel.VehicleCategory).Include(c => c.CarModel.FuelType).Where(c => c.CarModelID == vehicleReservationRequest.CarModelID).FirstOrDefaultAsync(v => !vehicleReservationRequest.notAvailableVehicles.Contains(v.ID)); if (vehicle != null) { var result = mapper.Map <DB.Vehicle, Models.ViewModels.Vehicle>(vehicle); return(true, result, null); } return(false, null, "Not found"); } catch (Exception ex) { logger?.LogError(ex.ToString()); return(false, null, ex.Message); } }