public GenericObjectResponse <ReservationRequestResponse> RequestReservation(long roomId, [FromBody] ReservationRequestPayload payload) { long?userId = AuthenticationService.IsAuthorized(Request, UserRole.RoomOwner, UserRole.Coach); if (userId == null) { Response.StatusCode = 401; return(new GenericObjectResponse <ReservationRequestResponse>("")); } ReservationRequestPayload trimmedPayload = new ReservationRequestPayload() { Description = payload.Description, RentStart = payload.RentStart.TrimDate(DateTimePrecision.Minute).ToLocalDate(), RentEnd = payload.RentEnd.TrimDate(DateTimePrecision.Minute).ToLocalDate() }; ReservationValidationService reservationValidationService = new ReservationValidationService(); GenericStatusMessage roomAvailabilityValidation = reservationValidationService.ValidateRoomAvailability(roomId, trimmedPayload); if (!roomAvailabilityValidation.Success) { Response.StatusCode = 400; return(new GenericObjectResponse <ReservationRequestResponse>(roomAvailabilityValidation.Message)); } ReservationManipulationService reservationManipulationService = new ReservationManipulationService(); return(reservationManipulationService.AddReservation(roomId, userId.Value, trimmedPayload)); }
public GenericStatusMessage RejectReservation(long roomId, long requestId) { long?userId = AuthenticationService.IsAuthorized(Request, UserRole.RoomOwner); if (userId == null) { Response.StatusCode = 401; return(new GenericStatusMessage(false, "")); } ReservationValidationService reservationValidationService = new ReservationValidationService(); GenericStatusMessage requestExistsValidation = reservationValidationService.ValidateRequest(roomId, requestId, userId.Value); if (!requestExistsValidation.Success) { Response.StatusCode = 400; return(new GenericStatusMessage(false, requestExistsValidation.Message)); } ReservationManipulationService reservationManipulationService = new ReservationManipulationService(); return(reservationManipulationService.ChangeReservationApproval(requestId, ReservationStatus.Rejected)); }