public IActionResult AddRun(AddRunModel model) { bool addRunModels = Service.AddRunModel(model); if (addRunModels) { return(RedirectToAction("Index", "Movies")); } else { return(RedirectToAction("ErrorModel", "Runs")); } }
public bool AddRunModel(AddRunModel model) { var room = DbContext.Rooms.Where(m => m.RoomName == model.RoomName).FirstOrDefault(); var run = new Run { Date = model.DateTime, MovieId = DbContext.Movies.Where(m => m.Title == model.MovieName).FirstOrDefault().Id, RoomId = room.Id }; var runs = DbContext.Runs .Include(r => r.Movie) .Include(r => r.Room) .Where(r => r.Date.Date == model.DateTime.Date && r.Room.RoomName == model.RoomName); bool isPossible = true; foreach (var runr in runs) { if (model.DateTime >= runr.Date && model.DateTime <= (runr.Date + runr.Movie.Duration)) { isPossible = false; } } if (isPossible) { DbContext.Add(run); DbContext.SaveChanges(); var seatsRoom = DbContext.SeatRoom.Where(m => m.RoomId == room.Id).ToList(); foreach (var seatRoom in seatsRoom) { DbContext.Add(new SeatRun { SeatRoomId = seatRoom.Id, RunId = run.Id, IsBooked = false }); } DbContext.SaveChanges(); return(true); } return(false); }