public IHttpActionResult GetAuditoriums(long id) { auditoriums auditoriums = db.auditoriums.Find(id); if (auditoriums == null) { return(NotFound()); } return(Ok(auditoriums)); }
public IHttpActionResult booking() { string token = formData("token"); string email = formData("email"); long show_id = long.Parse(formData("show_id")); int seats = int.Parse(formData("seats")); users user; if (token == null) { user = UserController.userByEmail(db, email); if (user == null) { //Creat new user user = new users(); user.email = email; db.users.Add(user); db.SaveChanges(); } } else { user = UserController.userByToken(db, token); if (user == null) { return(Content(HttpStatusCode.Forbidden, "You took a wrong turn somewere")); } } shows show = db.shows.Find(show_id); if (show == null) { return(Content(HttpStatusCode.BadRequest, "Show not fund")); } if (DateTime.Compare(show.start_at, DateTime.Now) < 0) { return(Content(HttpStatusCode.Gone, "Show alredy started")); } auditoriums auditorium = db.auditoriums.Find(show.auditorium_id); IQueryable <reservations> querry = db.reservations.Where(reservations => reservations.show_id == show_id); int seatsTaken = querry.Sum(reservations => reservations.seat_count); int seatsRemaining = auditorium.seats_total - seatsTaken; if (seats > seatsRemaining) { return(Content(HttpStatusCode.Conflict, "Not enough seats available")); } reservations reservation = new reservations(); reservation.user_id = user.id; reservation.show_id = show_id; reservation.seat_count = seats; reservation.first_seat_number = seatsTaken + 1; reservation.reserved_at = DateTime.Now; db.reservations.Add(reservation); db.SaveChanges(); return(Ok(reservation)); }