static void Main()
        {
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            Application.ThreadException += ApplicationOnThreadException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            var mainForm                 = new MainForm();
            var subscriptionManager      = new SubscriptionManager("subscriptions.xml");
            var podcastLoader            = new PodcastLoader();
            var podcastPlayer            = new PodcastPlayer();
            var displayService           = new MessageBoxDisplayService();
            var settingsService          = new SettingsService();
            var systemInformationService = new SystemInformationService();
            var subscriptionService      = new NewSubscriptionService();
            var presenter                = new MainFormPresenter(mainForm,
                                                                 subscriptionManager,
                                                                 podcastLoader,
                                                                 podcastPlayer,
                                                                 displayService,
                                                                 settingsService,
                                                                 systemInformationService,
                                                                 subscriptionService);

            Application.Run(mainForm);
        }
        static void Main()
        {
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            Application.ThreadException += ApplicationOnThreadException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
            var culture = new CultureInfo("en");

            Thread.CurrentThread.CurrentUICulture     = culture;
            Thread.CurrentThread.CurrentCulture       = culture;
            CultureInfo.DefaultThreadCurrentUICulture = culture;
            CultureInfo.DefaultThreadCurrentCulture   = culture;

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var episodeView      = new WpfEpisodeViewHost();
            var subscriptionView = new SubscriptionView();
            var podcastView      = new PodcastView();
            var toolbarView      = new ToolBarView();

            var podcastPlayer            = new PodcastPlayer();
            var podcastLoader            = new PodcastLoader();
            var settingsService          = new SettingsService();
            var subscriptionManager      = new SubscriptionManager("subscriptions.xml");
            var messageBoxDisplayService = new MessageBoxDisplayService();
            var systemInformationService = new SystemInformationService();
            var newSubscriptionService   = new NewSubscriptionService();

            var commands = new IToolbarCommand[]
            {
                new AddSubscriptionCommand(messageBoxDisplayService,
                                           newSubscriptionService,
                                           podcastLoader,
                                           subscriptionManager),
                new RemoveSubscriptionCommand(subscriptionView, subscriptionManager),
                new PlayCommand(podcastPlayer),
                new PauseCommand(podcastPlayer),
                new StopCommand(podcastPlayer),
                new FavouriteCommand(subscriptionView),
                new SettingsCommand()
            };
            var mainForm = new MainForm(episodeView, subscriptionView, podcastView, toolbarView);

            // for now, keep presenters alive with Tags
            episodeView.Tag      = new EpisodePresenter(episodeView, podcastPlayer);
            subscriptionView.Tag = new SubscriptionPresenter(subscriptionView);
            podcastView.Tag      = new PodcastPresenter(podcastView);
            toolbarView.Tag      = new ToolbarPresenter(toolbarView, commands);

            mainForm.Tag = new MainFormPresenter(mainForm,
                                                 podcastLoader,
                                                 subscriptionManager,
                                                 messageBoxDisplayService,
                                                 settingsService,
                                                 systemInformationService,
                                                 commands);
            Application.Run(mainForm);
        }
示例#3
0
        static void Main()
        {
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            Application.ThreadException += ApplicationOnThreadException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
            var culture = new CultureInfo("en");

            Thread.CurrentThread.CurrentUICulture     = culture;
            Thread.CurrentThread.CurrentCulture       = culture;
            CultureInfo.DefaultThreadCurrentUICulture = culture;
            CultureInfo.DefaultThreadCurrentCulture   = culture;

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            var subscriptionManager      = new SubscriptionManager("subscriptions.xml");
            var podcastLoader            = new PodcastLoader();
            var podcastPlayer            = new PodcastPlayer();
            var messageBoxDisplayService = new MessageBoxDisplayService();
            var settingsService          = new SettingsService();
            var systemInformationService = new SystemInformationService();
            var newSubscriptionService   = new NewSubscriptionService();
            var mainFormView             = new MainForm();

            var commands = new IToolbarCommand[]
            {
                new AddSubscriptionCommand(mainFormView.SubscriptionView, messageBoxDisplayService, newSubscriptionService, podcastLoader, subscriptionManager),
                new RemoveSubscriptionCommand(mainFormView.SubscriptionView, subscriptionManager),
                new PlayCommand(podcastPlayer),
                new PauseCommand(podcastPlayer),
                new StopCommand(podcastPlayer),
                new FavouriteCommand(mainFormView.SubscriptionView),
                new SettingsCommand()
            };

            var mainFormPresenter = new MainFormPresenter(mainFormView,
                                                          podcastLoader,
                                                          subscriptionManager,
                                                          podcastPlayer,
                                                          messageBoxDisplayService,
                                                          settingsService,
                                                          systemInformationService,
                                                          commands);

            Application.Run(mainFormView);
        }