/// <summary> /// Update an existing Guest in the databse. /// </summary> /// <param name="p_guest">New Guest-Object.</param> /// <returns>The updated Guest-Object. NULL, or Exception if an error occurs.</returns> public Guest Update(Guest p_guest) { using (var context = new FhdwHotelContext()) { using (var transaction = context.Database.BeginTransaction()) { try { p_guest.ContactAddress = context.Address.SingleOrDefault(a => a.ID == p_guest.ContactAddress.ID); p_guest.BillingAddress = context.Address.SingleOrDefault(a => a.ID == p_guest.BillingAddress.ID); context.Guest.Add(p_guest); context.SaveChanges(); transaction.Commit(); return p_guest; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); transaction.Rollback(); return null; } } } }
/// <summary> /// Update an existing Booking entry. /// </summary> /// <param name="p_booking">Bookingobject with an ID.</param> /// <returns>Updated Bookingobject.</returns> public Booking Update(Booking p_booking) { using (var context = new FhdwHotelContext()) { using (var transaction = context.Database.BeginTransaction()) { try { p_booking.Hotel = context.Hotel.SingleOrDefault(h => h.ID == p_booking.Hotel.ID); context.Booking.Add(p_booking); context.SaveChanges(); transaction.Commit(); return p_booking; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); transaction.Rollback(); return null; } } } }
/// <summary> /// Insert a new Room into the databse. /// </summary> /// <param name="p_room">The new Room.</param> /// <returns>The Newly created Room-Object. NULL, or Exception if an error occurs.</returns> public Room Insert(Room p_room) { using (var context = new FhdwHotelContext()) { using (var transaction = context.Database.BeginTransaction()) { try { var hotel = context.Hotel.SingleOrDefault(h => h.ID == p_room.Hotel.ID); p_room.Hotel = hotel; context.Room.Add(p_room); context.SaveChanges(); transaction.Commit(); return p_room; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); transaction.Rollback(); return null; } } } }
/// <summary> /// Insert a new booking into the database. /// </summary> /// <param name="p_booking">Bookingobject without an ID.</param> /// <returns>Filled Bookingobject.</returns> public Booking Insert(Booking p_booking) { using (var context = new FhdwHotelContext()) { using (var transaction = context.Database.BeginTransaction()) { try { p_booking.Hotel = context.Hotel.SingleOrDefault(h => h.ID == p_booking.Hotel.ID); if (p_booking.Guest != null && p_booking.Guest.ID > 0) { p_booking.Guest = context.Guest.SingleOrDefault(g => g.ID == p_booking.Guest.ID); if (p_booking.Guest.ContactAddress.ID > 0) p_booking.Guest.ContactAddress = context.Address.SingleOrDefault(a => a.ID == p_booking.Guest.ContactAddress.ID); if (p_booking.Guest.BillingAddress.ID > 0) p_booking.Guest.BillingAddress = context.Address.SingleOrDefault(a => a.ID == p_booking.Guest.BillingAddress.ID); } var rooms = p_booking.Rooms; p_booking.Rooms = new List<Room>(); foreach (var room in rooms) { p_booking.Rooms.Add(context.Room.FirstOrDefault(r => r.ID == room.ID)); } context.Booking.Add(p_booking); context.SaveChanges(); transaction.Commit(); return p_booking; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); transaction.Rollback(); return null; } } } }
/// <summary> /// Add Testdata to the Database. /// </summary> /// <param name="p_addresses">A Collection with Addressobjects.</param> /// <param name="p_admins">A Collection with Adminobjects</param> /// <param name="p_bookings">A Collection with Bookingobjects</param> /// <param name="p_guests">A Collection with Guestobjects</param> /// <param name="p_hotels">A Collection with Hotelobjects</param> /// <param name="p_rooms">A Collection with Roomobjects</param> /// <param name="p_roomTypes">A Collection of RoomTypes</param> /// <param name="p_roomCategories">A Collection of Roomcategories.</param> public void InsertTestData(ICollection<Address> p_addresses, ICollection<Admin> p_admins, ICollection<Booking> p_bookings, ICollection<Guest> p_guests, ICollection<DomainModel.Hotel> p_hotels, ICollection<Room> p_rooms, ICollection<RoomType> p_roomTypes, ICollection<RoomCategory> p_roomCategories) { using (var context = new FhdwHotelContext()) { using (var transaction = context.Database.BeginTransaction()) { try { if (p_roomTypes != null && !context.RoomType.Any()) { context.RoomType.AddRange(p_roomTypes); context.SaveChanges(); } if (p_roomCategories != null && !context.RoomCategory.Any()) { context.RoomCategory.AddRange(p_roomCategories); context.SaveChanges(); } if (p_admins != null && !context.Admin.Any()) { context.Admin.AddRange(p_admins); context.SaveChanges(); } if (p_addresses != null && !context.Address.Any()) { context.Address.AddRange(p_addresses); context.SaveChanges(); } if (p_hotels != null && !context.Hotel.Any()) { foreach (var hotel in p_hotels) { hotel.Address = context.Address.SingleOrDefault(a => a.ID == hotel.Address.ID); context.Hotel.Add(hotel); } context.SaveChanges(); } if (p_rooms != null && !context.Room.Any()) { foreach (var room in p_rooms) { room.Hotel = context.Hotel.SingleOrDefault(h => h.ID == room.Hotel.ID); context.Room.Add(room); } context.SaveChanges(); } if (p_guests != null && !context.Guest.Any()) { foreach (var guest in p_guests) { if (guest.ContactAddress != null) guest.ContactAddress = context.Address.SingleOrDefault(a => a.ID == guest.ContactAddress.ID); if (guest.BillingAddress != null) guest.BillingAddress = context.Address.SingleOrDefault(a => a.ID == guest.BillingAddress.ID); context.Guest.Add(guest); } context.SaveChanges(); } if (p_bookings != null && !context.Booking.Any()) context.Booking.AddRange(p_bookings); transaction.Commit(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); transaction.Rollback(); } } } }
/// <summary> /// Delete a room from the database. /// </summary> /// <param name="p_room">Roomobject with the ID set.</param> /// <returns>The deleted Room-Object. NULL, or Exception if an error occurs.</returns> public Room Delete(Room p_room) { using (var context = new FhdwHotelContext()) { using (var transaction = context.Database.BeginTransaction()) { try { var roomToDelete = context.Room.SingleOrDefault(r => r.ID == p_room.ID); context.Room.Remove(roomToDelete); context.SaveChanges(); transaction.Commit(); return roomToDelete; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); transaction.Rollback(); return null; } } } }