Esempio n. 1
0
        public IActionResult AddRun(AddRunModel model)
        {
            bool addRunModels = Service.AddRunModel(model);

            if (addRunModels)
            {
                return(RedirectToAction("Index", "Movies"));
            }
            else
            {
                return(RedirectToAction("ErrorModel", "Runs"));
            }
        }
Esempio n. 2
0
        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);
        }