public AuditoriumListPageViewModel(AuditoriumListPage view, ShowtimeRepository repository)
        {
            this.view = view;
            this.repository = repository;

            RetrieveData();
        }
        public ShowtimeEditorWindowViewModel(ShowtimeEditorWindow view, Showtime showtime,
            MovieRepository movieRepository, ShowtimeRepository showtimeRepository)
        {
            if (showtime == null)
            {
                CreateMode = true;
                showtime = new Showtime();
            }

            this.view = view;
            this.movieRepository = movieRepository;
            this.showtimeRepository = showtimeRepository;
            Showtime = showtime;

            Movies = movieRepository.GetMovies().ToList();
            Auditoriums = showtimeRepository.GetAuditoriums().ToList();

            if (CreateMode) return;

            var movie = Movies.FirstOrDefault(_ => _.Id == showtime.Movie.Id);
            view.SelectedMovieIndex = Movies.IndexOf(movie);

            var auditorium = Auditoriums.FirstOrDefault(_ => _.Id == showtime.Auditorium.Id);
            view.SelectedAuditoriumIndex = Auditoriums.IndexOf(auditorium);

            view.Time = showtime.Time;
        }
        public MovieShowtimesPageViewModel(MovieShowtimesPage view, ShowtimeRepository repository, Movie movie)
        {
            base.view = view;
            this.repository = repository;
            Movie = movie;

            SetUpTimer();

            RetrieveData();
        }
        public AuditoriumEditorWindowViewModel(Auditorium auditorium, ShowtimeRepository repository)
        {
            if (auditorium == null)
            {
                createMode = true;
                auditorium = new Auditorium();
            }

            Auditorium = auditorium;
            this.repository = repository;
        }
        public MovieShowtimesPage(Movie movie)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new ShowtimeRepository(connectionString);

            viewModel = new MovieShowtimesPageViewModel(this, repository, movie);
            DataContext = viewModel;
        }
        public AuditoriumEditorWindow(Auditorium auditorium)
        {
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new ShowtimeRepository(connectionString);

            viewModel = new AuditoriumEditorWindowViewModel(auditorium, repository);
            DataContext = viewModel;
        }
        public AuditoriumListPage(MainWindow window)
        {
            this.window = window;
            InitializeComponent();

            var connectionString = ConnectionStringBuilder.Build(
                Settings.Default.server,
                Settings.Default.database,
                Settings.Default.user,
                Settings.Default.password);

            var repository = new ShowtimeRepository(connectionString);

            viewModel = new AuditoriumListPageViewModel(this, repository);
            DataContext = viewModel.Auditoriums;
        }