public void findCheapestBestHotel(DateTime firstDate, DateTime lastDate, customerType type) { total_Days = Convert.ToInt32(lastDate.Subtract(firstDate).TotalDays) + 1; WeekendDays = total_WeekendDays(firstDate, lastDate); WeekDays = total_Days - WeekendDays; HotelDetail cheapestBestHotel = new HotelDetail(); int cheapestRate = 0; List <HotelDetail> hotel_list = CustomerBased_hotelList[type]; hotel_list.Sort((x, y) => ((getTotalRate(x)).CompareTo(getTotalRate(y)))); cheapestRate = getTotalRate(hotel_list.First()); cheapestBestRatedHotelsList = hotel_list.FindAll(x => getTotalRate(x).Equals(cheapestRate)); cheapestBestRatedHotelsList.Sort((x, y) => (y.Rating).CompareTo(x.Rating)); Console.WriteLine("Cheapest Rated Hotels are as follows: "); int bestCheapestRating = cheapestBestRatedHotelsList.First().Rating; foreach (var hotel in cheapestBestRatedHotelsList.FindAll(x => x.Rating.Equals(bestCheapestRating))) { Console.WriteLine(hotel.Name + " Rating is :" + hotel.Rating + " Total Cost :" + " " + getTotalRate(hotel)); } Console.WriteLine("\n "); }
public int getTotalRate(HotelDetail hotel) { if (hotel != null) { return((hotel.WeekdayRate * WeekDays) + (hotel.WeekendRate * WeekendDays)); } else { return(-1); } }