示例#1
0
        public async Task <IActionResult> PostReservationVehicleAsync(VehicleReservationRequest vehicleReservationRequest)
        {
            var result = await vehicleProvider.PostReservationVehicleAsync(vehicleReservationRequest);

            if (result.IsSuccess)
            {
                return(Ok(result.Vehicle));
            }
            return(NotFound());
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }