public async Task <ActionResult <bool> > RejectRoomBooking(RejectRoomBookingRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } return(await _roomBookingService.RejectRoomBookingRequest(request)); }
public async Task <bool> RejectRoomBookingRequest(RejectRoomBookingRequest request) { var roomBooking = await FindById(request.RoomBookingId); switch (roomBooking.Status) { case RequestStatus.Complete: case RequestStatus.Rejected: return(false); case RequestStatus.Approved: { var student = await _studentService.FindById(roomBooking.StudentId); if (student.RoomId == null) { return(false); } var room = await _repoWrapper.Room.FindByIdAsync(student.RoomId.Value); student.RoomId = null; room.CurrentNumberOfStudent--; roomBooking.RoomId = null; await _repoWrapper.Student.UpdateAsyncWithoutSave(student, student.StudentId); await _repoWrapper.Room.UpdateAsyncWithoutSave(room, room.RoomId); break; } } roomBooking.LastUpdated = DateTime.Now.AddHours(GlobalParams.TimeZone); roomBooking.Status = RequestStatus.Rejected; roomBooking.Reason = request.Reason; await _repoWrapper.Save(); return(true); }