public CinemaHallViewModel(ICinemaApi API)
        {
            _API = API;

            _timer          = new DispatcherTimer(DispatcherPriority.Normal);
            _timer.Interval = new TimeSpan(0, 5, 0);
            _timer.Tick    += _timer_Tick;
            _timer.Start();

            Hall          = CinemaHall.InitCinemaHall(colRows, colSeats);
            SelectedSeats = 0;
            GetMovies();
        }
        private void GetOccupiedSeats()
        {
            if (SelectedMovie != null)
            {
                string request = "api/getMovieBookedSeats";

                var    content      = JsonConvert.SerializeObject(new { MovieId = SelectedMovie.MovieId });
                string jsonBookings = Send("POST", request, content).Result;

                var bookings = JsonConvert.DeserializeObject <List <Booking> >(jsonBookings);

                Hall = CinemaHall.InitCinemaHall(colRows, colSeats);
                Hall.SetOccupiedSeats(bookings);
            }
        }
        public void Can_Book_Seats()
        {
            // Arrange
            ICinemaApi API = new CinemaAPIUnderTest("Host");

            CinemaHallViewModel viewModel = new CinemaHallViewModel(API);

            viewModel.SelectedMovie = new Movie {
                MovieId = 1, Name = "Фильм", ShowTime = "12:15:00"
            };

            viewModel.Hall = CinemaHall.InitCinemaHall(10, 10);

            viewModel.Hall[0][0].IsOccupied = false;
            viewModel.Hall[0][0].IsSelected = true;

            // Act
            viewModel.ToBookSeatsCommand.Execute(null);

            // Assert
            Assert.AreEqual(viewModel.SelectedSeats, 0);
            Assert.AreEqual(viewModel.Hall[0][0].IsSelected, false);
            Assert.AreEqual(viewModel.Hall[0][0].IsOccupied, true);
        }