public async Task <IActionResult> PostExperienceAsync([FromBody] Experience experience) { if (experience == null) { return(BadRequest(new { general = "Failed to create new experience" })); } Dictionary <string, string> errors = experience.Validate(); if (errors.Count == 0) { _context.Experiences.Add(experience); await _context.SaveChangesAsync(); return(CreatedAtRoute("GetExperience", new { id = experience.ExperienceID }, experience)); } return(BadRequest(errors)); }
public async Task <IActionResult> PutRoomAsync(int id, [FromBody] Room updatedRoom) { if (id != updatedRoom.RoomID) { return(BadRequest(new { general = "Failed to update room." })); } Dictionary <string, string> errors = updatedRoom.Validate(); if (errors.Count == 0) { _context.Entry(updatedRoom).State = EntityState.Modified; await _context.SaveChangesAsync(); return(NoContent()); } return(BadRequest(errors)); }
public async Task <IActionResult> PostReservationAsync(string email, int adultTickets, int childTickets, int showtimeID) { if (email == "") { return(BadRequest(new { general = "Please enter your email" })); } else if (adultTickets + childTickets == 0) { return(BadRequest(new { general = "You must reserve at least one ticket" })); } int reservationsMade = _context.Reservations .Where(r => r.ShowtimeID == showtimeID) .Count(); int roomCapacity = _context.Showtimes .Where(s => s.ShowtimeID == showtimeID) .Select(s => s.Room.Capacity) .Single(); if (reservationsMade + adultTickets + childTickets > roomCapacity) { return(BadRequest(new { general = "There aren't enough free seats to complete your reservation. " + "Please choose a different showtime." })); } for (int i = 0; i < adultTickets; i++) { Reservation reservation = new Reservation { ShowtimeID = showtimeID, Type = "Adult", Email = email }; _context.Reservations.Add(reservation); } for (int i = 0; i < childTickets; i++) { Reservation reservation = new Reservation { ShowtimeID = showtimeID, Type = "Child", Email = email }; _context.Reservations.Add(reservation); } if (reservationsMade + adultTickets + childTickets == roomCapacity) { Showtime showtime = await _context.Showtimes.FindAsync(showtimeID); showtime.Soldout = true; } await _context.SaveChangesAsync(); return(Ok()); }
public async Task <IActionResult> PostMovieAsync([FromBody] Movie newMovie) { if (newMovie == null) { return(BadRequest(new { general = "There was an unexpected error. Try again later." })); } Dictionary <string, string> errors = newMovie.Validate(); if (errors.Count == 0) { _context.Movies.Add(newMovie); await _context.SaveChangesAsync(); return(CreatedAtRoute("GetMovie", new { id = newMovie.MovieID }, newMovie)); } return(BadRequest(errors)); }