public async System.Threading.Tasks.Task <IHttpActionResult> Post3Async(HotelFiltro hotelFiltro) { var hotelManager = new HotelManagement(); apiResponse = new ApiResponse(); var hotels = await hotelManager.RetrieveAllByFiltroV2(hotelFiltro); apiResponse.Data = hotels; return(Ok(apiResponse)); }
public SqlOperation GetRetrieveAllByFiltroStatement(HotelFiltro hotelFiltro) { var operation = new SqlOperation { ProcedureName = $"RET_ALL_HOTELES_DISPONIBLES_PR" }; operation.AddVarcharParam("HOTEL_NOMBRE", hotelFiltro.HotelNombre); operation.AddIntParam("TIPO_HABITACION_PERSONAS", hotelFiltro.TipoHabitacionPersonas); operation.AddDateParam("FECHA_INICIO", hotelFiltro.FechaInicio); operation.AddDateParam("FECHA_FIN", hotelFiltro.FechaFin); return(operation); }
public async Task <List <object> > RetrieveAllByFiltroV2(HotelFiltro hotelFiltro) { hotelFiltro.HotelNombre = hotelFiltro.HotelNombre ?? ""; var roomsManagement = new AvailableRoomsManagement(); var hoteles = crudHotel.RetrieveAllByFiltro(hotelFiltro); Task <List <AvailableRooms> >[] tasks = new Task <List <AvailableRooms> > [hoteles.Count]; Task <List <AvailableRooms> > getAvailableRooms(int idHotel, int cantPersonas, DateTime checkin, DateTime checkout) { return(Task.Run(() => roomsManagement.RetrieveAll(idHotel, cantPersonas, checkin, checkout))); } for (int ctr = 0; ctr < hoteles.Count; ctr++) { var hotel = hoteles[ctr]; tasks[ctr] = Task.Run(async() => { // execute get rooms return(await getAvailableRooms(hotel.Id, hotelFiltro.TipoHabitacionPersonas, hotelFiltro.FechaInicio, hotelFiltro.FechaFin)); }); } Task.WaitAll(tasks.ToArray()); var hotelesResult = new List <object>(hoteles.Count); for (int i = 0; i < tasks.Length; i++) { hotelesResult.Add(new { hotel = hoteles[i], availableRooms = tasks[i].Result }); } return(hotelesResult); }
public List <Hotel> RetrieveAllByFiltro(HotelFiltro hotelFiltro) { try { var lstResult = SqlDao.GetInstance() .ExecuteQueryProcedure( hotelMapper.GetRetrieveAllByFiltroStatement(hotelFiltro) ); if (lstResult.Count <= 0) { return(default(List <Hotel>)); } var obj = EntityObjectMapper.BuildObjects(lstResult); return(obj.Cast <Hotel>().ToList()); } catch (Exception e) { ManageException(e); } return(null); }
public List <Hotel> RetrieveAllByFiltro(HotelFiltro hotelFiltro) { hotelFiltro.HotelNombre = hotelFiltro.HotelNombre ?? ""; return(crudHotel.RetrieveAllByFiltro(hotelFiltro)); }