public async Task <int> Book(RoomReservationDto roomReservation, InformationProvider informationProvider) { //Obtiene la información de metadata y la lleva al modelo de metadata var metadataCofig = await _repository.GetMetadata(informationProvider, IMetadataRestRepository.RequestType.book); if (metadataCofig.Body != null || metadataCofig.Body != "") { var metadataFieldTransport = Newtonsoft.Json.JsonConvert.DeserializeObject <Entity.Hotel.RoomReservationDto>(metadataCofig.Body); //Convierte el objeto request en Json var body = Newtonsoft.Json.JsonConvert.SerializeObject(roomReservation, Newtonsoft.Json.Formatting.Indented); metadataCofig.Body = _fieldMapper.GetBodyMapped(metadataFieldTransport, body); } metadataCofig.Url = _fieldMapper.GetUrlMapped(roomReservation, metadataCofig.Url); var providerConsumer = new ProviderConsumerService(_consumer); var result = await providerConsumer.Request(metadataCofig); if (!result.IsSuccessStatusCode) { throw new ProviderNotResponseException(); } var response = await result.Content.ReadAsStringAsync(); if (int.TryParse(response, out int responseNumber)) { return(responseNumber); } return(0); }
public async Task <int> RoomReservation(RoomReservationDto roomReservation) { try { var bookRoomRequest = GetBookRoomResponse(roomReservation); var booking = await _bookService.bookRoomAsync(bookRoomRequest); return(booking.result); } catch (Exception) { throw new ProviderNotResponseException(); } }