public ConsoleBasedServerHandler(DatabaseBuilder databaseBuilder, IActorsRepository actorsRepository, 
     IContentPathsRepository contentPathsRepository, IDirectorsRepository directorsRepository, 
     IEpisodesRepository episodesRepository, IGenresRepository genresRepository, 
     ISeasonsRepository seasonsRepository, ISeriesRepository seriesRepository, 
     ISubtitlesRepository subtitlesRepository, IWritersRepository writersRepository, 
     IMoviesRepository moviesRepository, FtpServer ftpServer)
 {
     _actorsRepository = actorsRepository;
     _contentPathsRepository = contentPathsRepository;
     _directorsRepository = directorsRepository;
     _episodesRepository = episodesRepository;
     _genresRepository = genresRepository;
     _moviesRepository = moviesRepository;
     _seasonsRepository = seasonsRepository;
     _seriesRepository = seriesRepository;
     _subtitlesRepository = subtitlesRepository;
     _writersRepository = writersRepository;
     _ftpServer = ftpServer;
     _databaseBuilder = databaseBuilder;
     CommandsDictionary = new Dictionary<string, Tuple<Action, string>>
     {
         {"help", new Tuple<Action, string>(PrintCommands, "Displays a list of all commands available.")},
         {"exit", new Tuple<Action, string>(ExitServer, "Safely shuts down the server and exits the command console.")},
         {"enableAutoStart", new Tuple<Action, string>(SetAutoStartOnLogin, "The server will start automatically when the user logs in.")},
         {"disableAutoStart", new Tuple<Action, string>(DisableAutoStartOnLogin, "The server will no longer start automatically when the user logs in.")},
         {"initServer", new Tuple<Action, string>(InitializaServer, "Manually start the server.")},
         {"shutDownServer", new Tuple<Action, string>(ShutDownServer, "Manually stop the server.")},
         {"restartServer", new Tuple<Action, string>(RestartServer, "Manually restart the server.")},
         {"status", new Tuple<Action, string>(DisplayServerStatus, "Displays the server's status.")},
         {"addToMoviesDirectories", new Tuple<Action, string>(AddToMoviesDirectories, "Adds specified directory to the movies directory list.")},
         {"removeFromMoviesDirectories", new Tuple<Action, string>(RemoveFromMoviesDirectories, "Removes specified directory from the movies directory list.")},
         {"listMoviesDirectories", new Tuple<Action, string>(ListMoviesDirectories, "Lists all known movies directories.")},
         {"addAllOrNewMovies", new Tuple<Action, string>(AddAllOrNewMovies, "Scans all movies directories to find and add all or any missing movies to the database.")},
         {"testImage", new Tuple<Action, string>(TestImage, "Copies the selected movie's poster to the current user's desktop.")}
     };
 }
 public ConsoleBasedServerHandler(DatabaseBuilder databaseBuilder, IActorsRepository actorsRepository,
                                  IContentPathsRepository contentPathsRepository, IDirectorsRepository directorsRepository,
                                  IEpisodesRepository episodesRepository, IGenresRepository genresRepository,
                                  ISeasonsRepository seasonsRepository, ISeriesRepository seriesRepository,
                                  ISubtitlesRepository subtitlesRepository, IWritersRepository writersRepository,
                                  IMoviesRepository moviesRepository, FtpServer ftpServer)
 {
     _actorsRepository       = actorsRepository;
     _contentPathsRepository = contentPathsRepository;
     _directorsRepository    = directorsRepository;
     _episodesRepository     = episodesRepository;
     _genresRepository       = genresRepository;
     _moviesRepository       = moviesRepository;
     _seasonsRepository      = seasonsRepository;
     _seriesRepository       = seriesRepository;
     _subtitlesRepository    = subtitlesRepository;
     _writersRepository      = writersRepository;
     _ftpServer         = ftpServer;
     _databaseBuilder   = databaseBuilder;
     CommandsDictionary = new Dictionary <string, Tuple <Action, string> >
     {
         { "help", new Tuple <Action, string>(PrintCommands, "Displays a list of all commands available.") },
         { "exit", new Tuple <Action, string>(ExitServer, "Safely shuts down the server and exits the command console.") },
         { "enableAutoStart", new Tuple <Action, string>(SetAutoStartOnLogin, "The server will start automatically when the user logs in.") },
         { "disableAutoStart", new Tuple <Action, string>(DisableAutoStartOnLogin, "The server will no longer start automatically when the user logs in.") },
         { "initServer", new Tuple <Action, string>(InitializaServer, "Manually start the server.") },
         { "shutDownServer", new Tuple <Action, string>(ShutDownServer, "Manually stop the server.") },
         { "restartServer", new Tuple <Action, string>(RestartServer, "Manually restart the server.") },
         { "status", new Tuple <Action, string>(DisplayServerStatus, "Displays the server's status.") },
         { "addToMoviesDirectories", new Tuple <Action, string>(AddToMoviesDirectories, "Adds specified directory to the movies directory list.") },
         { "removeFromMoviesDirectories", new Tuple <Action, string>(RemoveFromMoviesDirectories, "Removes specified directory from the movies directory list.") },
         { "listMoviesDirectories", new Tuple <Action, string>(ListMoviesDirectories, "Lists all known movies directories.") },
         { "addAllOrNewMovies", new Tuple <Action, string>(AddAllOrNewMovies, "Scans all movies directories to find and add all or any missing movies to the database.") },
         { "testImage", new Tuple <Action, string>(TestImage, "Copies the selected movie's poster to the current user's desktop.") }
     };
 }