public Reservation AddReservation(int roomId, int arrangerId, DateTime requestedAccomodationDate, DateTime requestedCheckOutDate, ReservationStatusEnum reservationStatus, HotelBookingSiteEnum hotelBookingSite, decimal totalCost) { var newReservation = new Reservation { UserId = arrangerId, ReservationStatusId = reservationStatus, AccomodationDate = requestedAccomodationDate, CheckOutDate = requestedCheckOutDate, HotelBookingSiteId = hotelBookingSite, TotalCost = totalCost }; using (var dbContextTransaction = db.Database.BeginTransaction()) { try { db.Reservations.Add(newReservation); db.SaveChanges(); db.RoomReservations.Add(new RoomReservation { ReservationId = newReservation.ReservationId, RoomId = roomId }); db.SaveChanges(); dbContextTransaction.Commit(); return(newReservation); } catch { dbContextTransaction.Rollback(); return(null); } } }
public Reservation AddReservation(int roomId, int arrangerId, DateTime requestedAccomodationDate, DateTime requestedCheckOutDate, ReservationStatusEnum reservationStatus, HotelBookingSiteEnum hotelBookingSite) { var room = this.roomRepository.GetRoom(roomId); var numberOfDays = (int)Math.Ceiling((requestedCheckOutDate - requestedAccomodationDate).TotalDays); var totalCost = Math.Round(numberOfDays * room.Cost, 2); return(this.reservationRepository.AddReservation(roomId, arrangerId, requestedAccomodationDate, requestedCheckOutDate, reservationStatus, hotelBookingSite, totalCost)); }