internal IBooking CreateBooking(DateTime start, DateTime end, string reservetime, string contractid, RoomType roomtype, string reservationid) { IRoomPrice roomprice = dbCon.GetRoomPrice(roomtype); var booking = new Booking(); dbCon.UpdateClock(); return(dbCon.CreateBooking(booking.ID, start, end, reservetime, contractid, roomtype, roomprice.Price, reservationid)); }
private void ManageRoomPriceCombo_Changed(object sender, SelectionChangedEventArgs e) { IRoomPrice roomprice = facade.GetRoomPrice((RoomType)ManageRoomPriceCombo.SelectedItem); if (roomprice != null) { ManageRoomPriceTbx.Text = roomprice.Price.ToString(); } }
internal List <IBooking> CreateBookings(List <IAvaliableRoom> selectedRoomList, DateTime start, DateTime end, string reservetime, string contractid, string reservationid) { List <IBooking> bookinglist = new List <IBooking>(); foreach (IAvaliableRoom room in selectedRoomList) { IRoomPrice roomprice = dbCon.GetRoomPrice(room.RType); for (int i = 1; i <= room.ChosenNum; i++) { var booking = new Booking(); dbCon.UpdateClock(); bookinglist.Add(dbCon.CreateBooking(booking.ID, start, end, reservetime, contractid, room.RType, roomprice.Price, reservationid)); } } LCon.Log_Booked(dbCon.GetCustomer(contractid), bookinglist); return(bookinglist); }
internal IRoomPrice UpdateRoomPrice(IRoomPrice roomprice) { connect(); SQLiteCommand cmd = new SQLiteCommand("Update RoomPrice Set RPRICE=:RPRICE Where RTYPE=:RTYPE", sqlCon); cmd.Parameters.AddWithValue("RTYPE", roomprice.RType.ToString()); cmd.Parameters.AddWithValue("RPRICE", roomprice.Price); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { throw new Exception("Room Price of " + roomprice.RType + " could not be updated!\n" + ex.Message); } finally { disconnect(); } return(GetRoomPrice(roomprice.RType)); }
//Return a list of available room types internal List <IAvaliableRoom> GetAvailableRooms(RoomType?roomtype, DateTime?startdate, DateTime?enddate) { List <IBooking> bookings = dbCon.GetBookings(); List <IRoom> rooms = GetRooms(); List <IAvaliableRoom> avaliablerooms = new List <IAvaliableRoom>(), temp; foreach (IRoom room in rooms) { bool foundroom = false; foreach (AvaliableRoom avaliroom in avaliablerooms) { if (avaliroom.RType == room.RType) { foundroom = true; avaliroom.Add(); } } if (foundroom == false) { IRoomPrice rmp = dbCon.GetRoomPrice(room.RType); if (rmp == null) { MessageBox.Show("房间价格未初始化!", "查询价格错误"); return(avaliablerooms); } avaliablerooms.Add(new AvaliableRoom(room.RType, rmp.Price)); } } if (roomtype != null) { temp = new List <IAvaliableRoom>(); foreach (IAvaliableRoom avaliroom in avaliablerooms) { if (avaliroom.RType == roomtype) { temp.Add(avaliroom); } } avaliablerooms = temp; } if (startdate != null && enddate != null) { foreach (AvaliableRoom avaliroom in avaliablerooms) { foreach (IBooking booking in bookings) { if (booking.Roomtype == avaliroom.RType) { bool overlap = startdate <booking.EndDate && enddate> booking.StartDate; if (overlap) { avaliroom.Reduce(); } } } } } return(avaliablerooms); }