protected override void OnStart(string[] args) { try { //Instantiate the configuration implementation to be used _configuration = ConfigurationFile.Load(); //Instantiate the repository implementation to be used _repository = MsSqlRepository.Load("MsSql"); //TODO: Implement dependency injection //Instantiate and start the controller _controller = new UsageSyncController(); _controller.Start(_configuration, _repository); } catch (Exception ex) { _log.Fatal("Error starting service.", ex); } }
static void Main(string[] args) { try { //Prompt for the type of controller to start ConsoleAction actionToPerform = ConsoleAction.None; do { Console.WriteLine("Select controller to start. Press <Esc> to exit:"); Console.WriteLine(); Console.WriteLine("1) Library Sync Controller"); Console.WriteLine("2) Usage Sync Controller"); Console.WriteLine(); ConsoleKeyInfo userInput = Console.ReadKey(true); switch (userInput.Key) { case ConsoleKey.D1: case ConsoleKey.NumPad1: { actionToPerform = ConsoleAction.StartLibraryController; break; } case ConsoleKey.D2: case ConsoleKey.NumPad2: { actionToPerform = ConsoleAction.StartUsageController; break; } case ConsoleKey.Escape: { actionToPerform = ConsoleAction.Exit; break; } default: { //Clear the console. We'll prompt the user again. Console.Clear(); break; } } }while (actionToPerform == ConsoleAction.None); //Create the configuration implementation to be used for the synchronization. IControllerConfiguration config = ConfigurationFile.Load(); //Create the repository implementation to be used for the synchronization. ILibraryRepository repository = MsSqlRepository.Load("MsSql"); BaseController controller = null; switch (actionToPerform) { case ConsoleAction.Exit: { Console.WriteLine("Exiting application..."); return; } case ConsoleAction.StartLibraryController: { Console.WriteLine("Starting library sync controller..."); controller = new LibrarySyncController <ImageFileRepository>(); break; } case ConsoleAction.StartUsageController: { Console.WriteLine("Starting usage sync controller..."); controller = new UsageSyncController(); break; } } //Start the controller controller.Start(config, repository); //Wait for the user to stop the controller. Console.WriteLine("Controller started. Press any key to stop and exit."); Console.ReadKey(); Console.WriteLine("Stopping controller..."); //Kill it controller.Stop(); } catch (Exception ex) { Console.WriteLine("**ERROR** - {0}", ex); Console.ReadKey(); } }