public IActionResult Create([FromBody] ReservationApplied reservation) { LogRequestToDebug(); if (reservation == null) { return(BadRequestExtension("Reservation is empty.")); } if (reservation.ReservedDevices == null || !reservation.ReservedDevices.Any()) { return(BadRequestExtension("RequestedDevices property is empty.")); } try { _reservationsAppliedRepository.Add(reservation); } catch (Exception ex) { return(StatusCodeExtension(500, "Failed to Add reservation in database. " + ex.Message)); } _logger.Debug(string.Format("Created new applied reservation: [{0}]", JsonConvert.SerializeObject(reservation))); return(CreatedAtRoute("getAppliedReservation", new { id = reservation.Id }, reservation)); }
/// <inheritdoc /> /// <summary> /// Applies the reservation. /// </summary> /// <returns>The reservation.</returns> /// <param name="reservation">Reservation.</param> public async Task <ReservationApplied> ApplyReservation(ReservationApplied reservation) { var serializedReservation = JsonConvert.SerializeObject(reservation); var httpContent = new StringContent(serializedReservation, Encoding.UTF8, "application/json"); var response = await _client.PostAsync("api/v1/reservation/applied", httpContent); if (!response.IsSuccessStatusCode) { _logger.Error(response.ToString()); throw new HttpRequestException(response.StatusCode.ToString()); } return(await GetAppliedReservation(reservation.Id)); }
/// <inheritdoc /> /// <summary> /// Gets the applied reservation. /// </summary> /// <returns>The applied reservation.</returns> /// <param name="id">Identifier.</param> public async Task <ReservationApplied> GetAppliedReservation(string id) { ReservationApplied reservation = null; _logger.Debug("GetAppliedReservation: " + _client.BaseAddress + "api/v1/reservation/applied/" + id); var response = await _client.GetAsync("api/v1/reservation/applied/" + id); if (response.IsSuccessStatusCode) { var stream = await response.Content.ReadAsStringAsync(); reservation = JsonConvert.DeserializeObject <ReservationApplied>(stream); } return(reservation); }
private async Task <ICollection <ReservationApplied> > AddAppliedReservation( ICollection <ReservationApplied> appliedReservations, Reservation reservation, List <ReservedDevice> reservedDevices) { _logger.Debug( $"Applying reservation - all devices are locked: {JsonConvert.SerializeObject(reservedDevices)}"); reservation.Available = true; var reservationToBeApplied = new ReservationApplied(reservation.Id) { ReservedDevices = reservedDevices, Available = true }; _logger.Debug( $"Applying reservation - adding reservation applied: {JsonConvert.SerializeObject(reservationToBeApplied)}"); var appliedReservation = await RestClient.ApplyReservation(reservationToBeApplied); appliedReservations.Add(appliedReservation); return(appliedReservations); }