static void Main(string[] args) { XmlConfigurator.Configure(); try { ThreadPool.SetMinThreads(32, 1024); var statePersister = new StatePersister(); AuthController authController = new AuthController(StatePersister.LoadUsers(), statePersister); ElectroController electroController = new ElectroController(StatePersister.LoadElections(), StatePersister.LoadKeys(), authController, statePersister); var staticHandler = new StaticHandler(GetPrefix(null), Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "web")); staticHandler.Start(); var registerHandler = new RegisterHandler(authController, GetPrefix("register")); registerHandler.Start(); var loginHandler = new LoginHandler(authController, GetPrefix("login")); loginHandler.Start(); var logoutHandler = new LogoutHandler(authController, GetPrefix("logout")); logoutHandler.Start(); var startElectionHandler = new StartElectionHandler(electroController, authController, GetPrefix("startElection")); startElectionHandler.Start(); var listElectionsHandler = new ListElectionsHandler(electroController, authController, GetPrefix("listElections")); listElectionsHandler.Start(); var findElectionHandler = new FindElectionHandler(electroController, authController, GetPrefix("findElection")); findElectionHandler.Start(); var nominateHandler = new NominateHandler(electroController, authController, GetPrefix("nominate")); nominateHandler.Start(); var voteHandler = new VoteHandler(electroController, authController, GetPrefix("vote")); voteHandler.Start(); while (true) { Thread.Sleep(electionsSnapshotTimeoutMs); try { log.Info("Saving elections snapshot"); StatePersister.SaveAllElections(electroController.DumpElections().Reverse()); log.Info("Elections snapshot saved"); } catch (Exception e) { log.Error("Failed to save elections snapshot. Sleeping and retrying", e); } } } catch (Exception e) { log.Fatal(e); } }
static void Main(string[] args) { XmlConfigurator.Configure(); try { ThreadPool.SetMinThreads(32, 1024); var statePersister = new StatePersister(); AuthController authController = new AuthController(StatePersister.LoadUsers(), statePersister); ElectroController electroController = new ElectroController(StatePersister.LoadElections(), StatePersister.LoadKeys(), authController, statePersister); var staticHandler = new StaticHandler(GetPrefix(null), Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "web")); staticHandler.Start(); var registerHandler = new RegisterHandler(authController, GetPrefix("register")); registerHandler.Start(); var loginHandler = new LoginHandler(authController, GetPrefix("login")); loginHandler.Start(); var logoutHandler = new LogoutHandler(authController, GetPrefix("logout")); logoutHandler.Start(); var startElectionHandler = new StartElectionHandler(electroController, authController, GetPrefix("startElection")); startElectionHandler.Start(); var listElectionsHandler = new ListElectionsHandler(electroController, authController, GetPrefix("listElections")); listElectionsHandler.Start(); var findElectionHandler = new FindElectionHandler(electroController, authController, GetPrefix("findElection")); findElectionHandler.Start(); var nominateHandler = new NominateHandler(electroController, authController, GetPrefix("nominate")); nominateHandler.Start(); var voteHandler = new VoteHandler(electroController, authController, GetPrefix("vote")); voteHandler.Start(); while(true) { Thread.Sleep(electionsSnapshotTimeoutMs); try { log.Info("Saving elections snapshot"); StatePersister.SaveAllElections(electroController.DumpElections().Reverse()); log.Info("Elections snapshot saved"); } catch(Exception e) { log.Error("Failed to save elections snapshot. Sleeping and retrying", e); } } } catch(Exception e) { log.Fatal(e); } }