public IHttpActionResult PutRoomStatus_Detail(int id, RoomStatus_Detail roomstatus_detail) { if (!ModelState.IsValid) { return BadRequest(ModelState); } if (id != roomstatus_detail.Id) { return BadRequest(); } try { _RoomStatus_DetailService.Update(roomstatus_detail); } catch (DbUpdateConcurrencyException) { if (!_RoomStatus_DetailService.Exists(id) ) { return NotFound(); } else { throw; } } return StatusCode(HttpStatusCode.NoContent); }
public IHttpActionResult PostRoomStatus_Detail(RoomStatus_Detail roomstatus_detail) { if (!ModelState.IsValid) { return BadRequest(ModelState); } _RoomStatus_DetailService.Create(roomstatus_detail); return CreatedAtRoute("DefaultApi", new { id = roomstatus_detail.Id }, roomstatus_detail); }
async Task Create_or_Update_RoomDetail(long? RoomReservationId, List<RoomReservation_RoomDetailsViewDetail> roomdetails, int roomreservationstatusid, DateTime FromDate, DateTime ToDate,DateTime? RoomReservation_StatusDate) { //Add all roomdetail foreach (var roomdetail in roomdetails) { if (roomdetail.RoomReservation_RoomDetails.Id > 0) { _RoomReservation_RoomDetailsRepository.Update(roomdetail.RoomReservation_RoomDetails, roomdetail.RoomReservation_RoomDetails.Id.ToString ()); } else { roomdetail.RoomReservation_RoomDetails.RoomReservation_Id = RoomReservationId; roomdetail.RoomReservation_RoomDetails = await _RoomReservation_RoomDetailsRepository.Create(roomdetail.RoomReservation_RoomDetails); } // Make this room reserved or checkin bases on reservation status in room allocation table and room status detail table var ReservationStatusType =await _ReservationStatusTypeRepository.GetById(roomreservationstatusid); if (ReservationStatusType != null) { var roomallocation =await _RoomAllocationRepository.GetById(roomdetail.RoomReservation_RoomDetails.RoomAllocationId.Value.ToString()); roomallocation.RoomStatusTypeId = ReservationStatusType.RoomStatusTypeId.Value; _RoomAllocationRepository.Update(roomallocation,roomallocation.Id.ToString ()); //create a record of roomstatus_detail table. if (ReservationStatusType.RoomStatusTypeId!= (int)RoomReservationSystem.Model.Enums.RoomStatusType.Available) { //if no records of same reservation id and status type exist then create new record. var RoomStatus_Detail=await _RoomStatus_DetailRepository.GetByReservationId(RoomReservationId.Value,ReservationStatusType.RoomStatusTypeId.Value ); if (RoomStatus_Detail==null) {RoomStatus_Detail = new RoomStatus_Detail();} RoomStatus_Detail.RoomAllocationId = roomdetail.RoomReservation_RoomDetails.RoomAllocationId.Value; RoomStatus_Detail.RoomStatusTypeId = ReservationStatusType.RoomStatusTypeId; RoomStatus_Detail.RoomReservationId = RoomReservationId; RoomStatus_Detail.Reason = "New Reservation Created of Type : " + ReservationStatusType.Name; switch(ReservationStatusType.RoomStatusTypeId) { case (int)RoomReservationSystem.Model.Enums.RoomStatusType.Reserved: { RoomStatus_Detail.FromDate = FromDate; RoomStatus_Detail.ToDate = ToDate; break; } case (int)RoomReservationSystem.Model.Enums.RoomStatusType.CheckIn : { RoomStatus_Detail.FromDate = RoomReservation_StatusDate; RoomStatus_Detail.ToDate = ToDate; break; } case (int)RoomReservationSystem.Model.Enums.RoomStatusType.House_Keeping: { RoomStatus_Detail.FromDate = RoomReservation_StatusDate; RoomStatus_Detail.ToDate = RoomReservation_StatusDate.Value.AddHours(2); break; } } if (RoomStatus_Detail.Id!=0) _RoomStatus_DetailRepository.Update(RoomStatus_Detail, RoomStatus_Detail.Id.ToString ()); else RoomStatus_Detail= await _RoomStatus_DetailRepository.Create(RoomStatus_Detail); } } } //delete all those roomdetail which are not included in room detail list await _RoomReservation_RoomDetailsRepository.Delete_Removed_RoomReservations(RoomReservationId, string.Join (",", roomdetails.Select(x => x.RoomReservation_RoomDetails.Id).ToList())); }