예제 #1
0
        public APITest()
        {
            var options = new DbContextOptionsBuilder <CinemaContext>()
                          .UseInMemoryDatabase("TestDb")
                          .Options;

            _context = new CinemaContext(options);
            TestDbInitializer.Initialize(_context);
            _service              = new CinemaService(_context);
            _seatsController      = new SeatsController(_service);
            _movieController      = new MoviesController(_service);
            _roomController       = new RoomsController(_service);
            _screeningsController = new ScreeningsController(_service);

            for (Int32 i = 0; i < 10; i++)
            {
                for (Int32 j = 0; j < 10; j++)
                {
                    _service.CreateSeat(new Seat
                    {
                        ScreeningId = 4,
                        RoomId      = 1,
                        Column      = j,
                        Row         = i,
                        BookerName  = "trial_n",
                        PhoneNumber = "+36702795955"
                    });
                }
            }
        }
        public IActionResult Booking(int id)
        {
            var screening = _service.GetScreening(id);

            ViewData["Screening"] = screening;
            ViewData["Movie"]     = _service.GetMovie(screening.MovieId);

            var room = _service.GetRoom(screening.RoomId);

            ViewData["Room"] = room;

            if (_service.GetSeatsByScreeningId(id).Count <= 0)
            {
                for (Int32 i = 0; i < room.Rows; i++)
                {
                    for (Int32 j = 0; j < room.Columns; j++)
                    {
                        _service.CreateSeat(new Seat
                        {
                            ScreeningId = screening.Id,
                            RoomId      = room.Id,
                            Row         = i,
                            Column      = j,
                            Status      = Status.Free
                        });
                    }
                }
            }

            ViewData["Seats"] = _service.GetSeatsByScreeningId(id);

            return(View());
        }
        public ActionResult <SeatDto> PostSeat(SeatDto seatDto)
        {
            var seat = _service.CreateSeat((Seat)seatDto);

            if (seat is null)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            else
            {
                return(CreatedAtAction(nameof(GetSeat), new { id = seat.Id }, (SeatDto)seat));
            }
        }