public List <HotelDTO> SearchAvailableRooms(DataSearchAvailableRoomsDTO adsar_dsar) { List <HotelDTO> llh_hoteles; llh_hoteles = null; try { if (adsar_dsar.City == null || adsar_dsar.City.Trim().Length == 0) { throw new Exception("La ciudad es obligatoria"); } if (adsar_dsar.Country == null || adsar_dsar.Country.Trim().Length == 0) { throw new Exception("El país es obligatorio"); } if (adsar_dsar.CheckIn == null) { throw new Exception("El check-in es obligatorio"); } if (adsar_dsar.CheckOut == null) { throw new Exception("El check-out es obligatorio"); } if (adsar_dsar.Rooms == 0) { throw new Exception("El numero de habitaciones debe ser mayor a 0"); } if (adsar_dsar.Type == null || adsar_dsar.Type.Trim().Length == 0) { throw new Exception("El tipo de habitacion es obligatorio"); } IHiltonRoomServiceDAL lhrsDAL_hrsDAL; lhrsDAL_hrsDAL = new HiltonRoomServiceDAL(); llh_hoteles = lhrsDAL_hrsDAL.SearchAvailableRooms(adsar_dsar); } catch (Exception ae_e) { Exception le_e; le_e = ae_e.InnerException != null ? ae_e.InnerException : ae_e; llh_hoteles = null; Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, "ERROR EN EL SERVICIO HiltonRoomService:Initiate"); Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, " :: " + ae_e.Message); throw ae_e; } return(llh_hoteles); }
public List <HotelDTO> SearchAvailableRooms(DataSearchAvailableRoomsDTO asar_sar) { List <HotelDTO> llh_llh; llh_llh = new List <HotelDTO>(); try { SqlParameter lsp_parameter; List <SqlParameter> llsp_parameters; DataSet lds_data; lsp_parameter = new SqlParameter("@Ciudad", DbType.String); lsp_parameter.Value = asar_sar.City; llsp_parameters = new List <SqlParameter>(); llsp_parameters.Add(lsp_parameter); lsp_parameter = new SqlParameter("@Pais", DbType.String); lsp_parameter.Value = asar_sar.Country; llsp_parameters.Add(lsp_parameter); lsp_parameter = new SqlParameter("@CheckIn", DbType.Date); lsp_parameter.Value = asar_sar.CheckIn; llsp_parameters.Add(lsp_parameter); lsp_parameter = new SqlParameter("@CheckOut", DbType.Date); lsp_parameter.Value = asar_sar.CheckOut; llsp_parameters.Add(lsp_parameter); lsp_parameter = new SqlParameter("@NroHabitaciones", DbType.Int16); lsp_parameter.Value = asar_sar.Rooms; llsp_parameters.Add(lsp_parameter); lsp_parameter = new SqlParameter("@TipoHabitacion", DbType.String); lsp_parameter.Value = asar_sar.Type; llsp_parameters.Add(lsp_parameter); lds_data = GetDataBaseHelper().ExecuteProcedureToDataSet("GetRooms", llsp_parameters); if (lds_data != null && lds_data.Tables.Count > 0) { foreach (DataRow ldr_temp in lds_data.Tables[0].Rows) { HotelDTO lh_hotel; RoomDTO lr_room; lh_hotel = llh_llh.Find(x => x.CodigoHotel == Convert.ToInt16(ldr_temp["CodigoHotel"])); lr_room = new RoomDTO { Number = Convert.ToInt16(ldr_temp["NroHabitacion"]), Price = float.Parse(Convert.ToString(ldr_temp["PrecioHabitacion"])), Type = Convert.ToString(ldr_temp["TipoHabitacion"]) }; if (lh_hotel == null) { lh_hotel = new HotelDTO { CodigoHotel = Convert.ToInt16(ldr_temp["CodigoHotel"]), Name = Convert.ToString(ldr_temp["NombreHotel"]), Address = Convert.ToString(ldr_temp["DireccionHotel"]), City = Convert.ToString(ldr_temp["CiudadHotel"]), Country = Convert.ToString(ldr_temp["PaisHotel"]), Rooms = new List <RoomDTO>() }; lh_hotel.Rooms.Add(lr_room); llh_llh.Add(lh_hotel); } else { if (!lh_hotel.Rooms.Contains(lr_room)) { lh_hotel.Rooms.Add(lr_room); } } } } } catch (Exception ae_e) { Exception le_e; le_e = ae_e.InnerException != null ? ae_e.InnerException : ae_e; llh_llh = null; Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, "ERROR EN EL SERVICIO IHiltonRoomService Initiate:"); Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, " :: " + ae_e.Message); } return(llh_llh); }
initiateResponse IHiltonRoomService.Initiate(initiateRequest air_request) { initiateResponse lir_response; lir_response = new initiateResponse { HiltonRoomServiceProcessResponse = new HiltonRoomServiceProcessResponse() }; lir_response.HiltonRoomServiceProcessResponse.status = new Status(); try { DataSearchAvailableRoomsDTO ldsar_dsar; IHiltonRoomServiceBusiness lhrsb_hrsb; List <HotelDTO> llh_hotelesTemp; ldsar_dsar = new DataSearchAvailableRoomsDTO { City = air_request.HiltonRoomServiceProcessRequest.City, Country = air_request.HiltonRoomServiceProcessRequest.Country, CheckIn = air_request.HiltonRoomServiceProcessRequest.CheckIn, CheckOut = air_request.HiltonRoomServiceProcessRequest.CheckOut, Rooms = air_request.HiltonRoomServiceProcessRequest.Rooms, Type = air_request.HiltonRoomServiceProcessRequest.Type }; lhrsb_hrsb = new HiltonRoomServiceBusiness(); llh_hotelesTemp = lhrsb_hrsb.SearchAvailableRooms(ldsar_dsar); if (llh_hotelesTemp != null) { if (llh_hotelesTemp.Count > 0) { List <Hotel> llh_hoteles; llh_hoteles = new List <Hotel>(); foreach (HotelDTO lh_hotelTemp in llh_hotelesTemp) { Hotel lh_hotel; List <Room> llr_rooms; lh_hotel = new Hotel { Name = lh_hotelTemp.Name, Address = lh_hotelTemp.Address, City = lh_hotelTemp.City, Country = lh_hotelTemp.Country }; llr_rooms = new List <Room>(); foreach (RoomDTO lr_roomTemp in lh_hotelTemp.Rooms) { Room lr_room; lr_room = new Room { Number = lr_roomTemp.Number, Price = lr_roomTemp.Price, Type = lr_roomTemp.Type }; llr_rooms.Add(lr_room); } lh_hotel.Rooms = llr_rooms.ToArray(); llh_hoteles.Add(lh_hotel); } lir_response.HiltonRoomServiceProcessResponse.status.code = "00"; lir_response.HiltonRoomServiceProcessResponse.status.error = ""; lir_response.HiltonRoomServiceProcessResponse.result = llh_hoteles.ToArray(); } else { lir_response.HiltonRoomServiceProcessResponse.status.code = "01"; lir_response.HiltonRoomServiceProcessResponse.status.error = "No hay habitaciones disponibles con los parametros ingresados"; } } else { lir_response.HiltonRoomServiceProcessResponse.status.code = "01"; lir_response.HiltonRoomServiceProcessResponse.status.error = "Error en la ejecución del servicio"; } } catch (Exception ae_e) { Exception le_e; le_e = ae_e.InnerException != null ? ae_e.InnerException : ae_e; lir_response.HiltonRoomServiceProcessResponse.status.code = "01"; lir_response.HiltonRoomServiceProcessResponse.status.error = "Error en la ejecución del servicio:" + ae_e.Message; Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, "ERROR EN EL SERVICIO IHiltonRoomService Initiate:"); Common.CreateTrace.WriteLog(Common.CreateTrace.LogLevel.Error, " :: " + ae_e.Message); } return(lir_response); }