public async Task <IActionResult> PutShowtimeGroupAsync(int id, [FromBody] ShowtimeGroup UpdatedGroup) { if (id != UpdatedGroup.ShowtimeGroupID) { return(BadRequest()); } Dictionary <string, string> errors = UpdatedGroup.Validate(_context); if (errors.Count == 0) { ShowtimeGroup group = await _context.ShowtimeGroups .Where(g => g.ShowtimeGroupID == id) .Include(g => g.ShowtimeGroupEntries) .ThenInclude(e => e.Showtimes) .Include(g => g.Movie) .SingleAsync(); group.UpdateEntries(UpdatedGroup); await _context.SaveChangesAsync(); group.Movie = null; foreach (ShowtimeGroupEntry entry in group.ShowtimeGroupEntries) { entry.Showtimes = null; } return(Created($"api/movie/showtimegroups/{id}", group)); } return(BadRequest(errors)); }
public async Task <IActionResult> GetShowtimeGroupAsync(int id) { ShowtimeGroup showtimeGroup = await _context .ShowtimeGroups .Where(s => s.ShowtimeGroupID == id) .Include(s => s.ShowtimeGroupEntries) .ThenInclude(e => e.Room) .Include(s => s.ShowtimeGroupEntries) .ThenInclude(e => e.Experience) .FirstAsync(); if (showtimeGroup != null) { return(Ok(showtimeGroup)); } return(NotFound(new { general = "Invalid ID supplied." })); }
public async Task <IActionResult> DeleteShowtimeGroupAsync(int id) { ShowtimeGroup group = await _context.ShowtimeGroups.FindAsync(id); Dictionary <string, string> errors = new Dictionary <string, string>(); if (group != null) { if (group.CanBeDeleted(_context, errors)) { _context.ShowtimeGroups.Remove(group); await _context.SaveChangesAsync(); return(NoContent()); } else { return(BadRequest(errors)); } } return(NotFound()); }
public async Task <IActionResult> PostMovieShowtimesAsync(int id, [FromBody] ShowtimeGroup showtimeGroup) { if (showtimeGroup == null) { return(BadRequest(new { general = "There was an unexpected error. Try again later." })); } Dictionary <string, string> errors = showtimeGroup.Validate(_context); if (errors.Count == 0) { showtimeGroup.GenerateShowtimes(_context); _context.ShowtimeGroups.Add(showtimeGroup); await _context.SaveChangesAsync(); showtimeGroup.Movie = null; foreach (ShowtimeGroupEntry entry in showtimeGroup.ShowtimeGroupEntries) { entry.Showtimes = null; } return(CreatedAtRoute("GetShowtimeGroup", new { id = showtimeGroup.ShowtimeGroupID }, showtimeGroup)); } return(BadRequest(errors)); }