public SyncMenuViewModel( Interfaces.ICollectorReceiptManager receiptManager, Interfaces.IGoogleManager googleManager, IEventAggregator eventAggregator) { if (receiptManager == null) { throw new ArgumentNullException("receiptManager"); } if (googleManager == null) { throw new ArgumentNullException("googleManager"); } if (eventAggregator == null) { throw new ArgumentNullException("eventAggregator"); } this.eventAggregator = eventAggregator; this.receiptManager = receiptManager; this.googleManager = googleManager; this.eventAggregator.GetEvent<Events.StartSyncEvent>().Subscribe((o) => { this.StartSync(); }); }
public SyncMenuViewModel( Interfaces.ICollectorReceiptManager receiptManager, Interfaces.IGoogleManager googleManager, IEventAggregator eventAggregator) { if (receiptManager == null) { throw new ArgumentNullException("receiptManager"); } if (googleManager == null) { throw new ArgumentNullException("googleManager"); } if (eventAggregator == null) { throw new ArgumentNullException("eventAggregator"); } this.eventAggregator = eventAggregator; this.receiptManager = receiptManager; this.googleManager = googleManager; this.eventAggregator.GetEvent <Events.StartSyncEvent>().Subscribe((o) => { this.StartSync(); }); }
public ParametersViewModel( Interfaces.ISettingsManager settingsManager, Services.IInteractionService interactionService, Services.IDispatcherService dispatcherService, Interfaces.IGoogleManager googleManager, IEventAggregator eventAggregator) { if (settingsManager == null) { throw new ArgumentNullException("settingsManager"); } if (interactionService == null) { throw new ArgumentNullException("InteractionService"); } if (dispatcherService == null) { throw new ArgumentNullException("dispatcherService"); } if (eventAggregator == null) { throw new ArgumentNullException("EventAggregator"); } if (googleManager == null) { throw new ArgumentNullException("googleManager"); } this.settingsManager = settingsManager; this.interactionService = interactionService; this.dispatcherService = dispatcherService; this.eventAggregator = eventAggregator; this.googleManager = googleManager; this.Calendars = new ObservableCollection <Entity.Calendar>(); this.SelectCollectionneurDbPathCommand = new DelegateCommand(new Action(() => { this.SelectCollectionneurDbPath(); })); this.SaveCommand = new DelegateCommand( new Action(this.Save), new Func <bool>(() => this.CanSave)); this.IsGmailAccountAlreadyConfigured = this.googleManager.IsAccountAlreadyConfigured(); this.currentSettings = this.settingsManager.LoadSettings(); this.DaysToSyncBefore = this.currentSettings.DaysToSyncBefore; this.DaysToSyncAfter = this.currentSettings.DaysToSyncAfter; this.collectionneurRecetteDbPath = this.currentSettings.CollectionneurDabasePath; }
public ParametersViewModel( Interfaces.ISettingsManager settingsManager, Services.IInteractionService interactionService, Services.IDispatcherService dispatcherService, Interfaces.IGoogleManager googleManager, IEventAggregator eventAggregator) { if (settingsManager == null) { throw new ArgumentNullException("settingsManager"); } if (interactionService == null) { throw new ArgumentNullException("InteractionService"); } if (dispatcherService == null) { throw new ArgumentNullException("dispatcherService"); } if (eventAggregator == null) { throw new ArgumentNullException("EventAggregator"); } if (googleManager == null) { throw new ArgumentNullException("googleManager"); } this.settingsManager = settingsManager; this.interactionService = interactionService; this.dispatcherService = dispatcherService; this.eventAggregator = eventAggregator; this.googleManager = googleManager; this.Calendars = new ObservableCollection<Entity.Calendar>(); this.SelectCollectionneurDbPathCommand = new DelegateCommand(new Action(() => { this.SelectCollectionneurDbPath(); })); this.SaveCommand = new DelegateCommand( new Action(this.Save), new Func<bool>(() => this.CanSave)); this.IsGmailAccountAlreadyConfigured = this.googleManager.IsAccountAlreadyConfigured(); this.currentSettings = this.settingsManager.LoadSettings(); this.DaysToSyncBefore = this.currentSettings.DaysToSyncBefore; this.DaysToSyncAfter = this.currentSettings.DaysToSyncAfter; this.collectionneurRecetteDbPath = this.currentSettings.CollectionneurDabasePath; }
public MainWindowViewModel( CrossCutting.ILoggerService logger, Interfaces.ICollectorReceiptManager collectorReceiptManager, Interfaces.ISettingsManager settingsManager, Interfaces.IGoogleManager googleManager, Services.IDispatcherService dispatcherService, IEventAggregator eventAggregator) { if (settingsManager == null) { throw new ArgumentNullException("settingsManager"); } if (dispatcherService == null) { throw new ArgumentNullException("dispatcherService"); } if (collectorReceiptManager == null) { throw new ArgumentNullException("collectorReceiptManager"); } if (eventAggregator == null) { throw new ArgumentNullException("eventAggregator"); } if (googleManager == null) { throw new ArgumentNullException("googleManager"); } if (logger == null) { throw new ArgumentNullException("logger"); } this.exitCommand = new DelegateCommand(new Action(() => { System.Windows.Application.Current.Shutdown(); })); this.showParametersCommand = new DelegateCommand(new Action(() => { var regionManager = ServiceLocator.Current.GetInstance<Prism.Regions.IRegionManager>(); regionManager.RequestNavigate("AppBarRegion", new Uri("AppBarParametersView", UriKind.Relative)); regionManager.RequestNavigate("MainRegion", new Uri("ParametersView", UriKind.Relative)); this.eventAggregator.GetEvent<Events.ActivateWindowEvent>().Publish(null); })); this.SyncMenuCommand = new DelegateCommand(() => { var regionManager = ServiceLocator.Current.GetInstance<Prism.Regions.IRegionManager>(); //regionManager.RequestNavigate("AppBarRegion", new Uri("AppBarParametersView", UriKind.Relative)); regionManager.RequestNavigate("MainRegion", new Uri("SyncMenuView", UriKind.Relative)); this.eventAggregator.GetEvent<Events.ActivateWindowEvent>().Publish(null); this.eventAggregator.GetEvent<Events.StartSyncEvent>().Publish(null); }); this.ShowAboutCommand = new DelegateCommand(() => { var regionManager = ServiceLocator.Current.GetInstance<Prism.Regions.IRegionManager>(); regionManager.RequestNavigate("MainRegion", new Uri("AboutView", UriKind.Relative)); this.eventAggregator.GetEvent<Events.ActivateWindowEvent>().Publish(null); }); this.logger = logger; this.eventAggregator = eventAggregator; this.collectorReceiptManager = collectorReceiptManager; this.googleManager = googleManager; this.settingsManager = settingsManager; this.dispatcherService = dispatcherService; this.LoadCommand = new DelegateCommand(() => { if (string.IsNullOrEmpty(this.settingsManager.LoadSettings().CollectionneurDabasePath)) { this.logger.LogInformation("Application settings not set, show parameters window"); this.dispatcherService.Invoke(() => { this.ShowParametersCommand.Execute(); }); } this.checkAppRunningTimer = new Timer((state) => { if (this.collectorReceiptManager.CanSync() == Entity.CanNotSyncReason.None) { if (this.collectorReceiptManager.IsCollectorReceiptAppRunning()) { if (!this.isAppCollectorAlreadyRunning) { // the app is not running before, so show notification this.eventAggregator.GetEvent<Events.DisplayNotificationMessageEvent>().Publish("Application collectionneur de recettes détectées, en attente de fermeture pour synchronisation"); this.isAppCollectorAlreadyRunning = true; } } else { if (this.isAppCollectorAlreadyRunning) { // the app was running, so launch sync // TODO: launch sync var regionManager = ServiceLocator.Current.GetInstance<Prism.Regions.IRegionManager>(); regionManager.RequestNavigate("MainRegion", new Uri("SyncMenuView", UriKind.Relative)); this.eventAggregator.GetEvent<Events.StartSyncEvent>().Publish(null); this.eventAggregator.GetEvent<Events.DisplayNotificationMessageEvent>().Publish("Application collectionneur de recettes fermée, début de la synchronisation"); this.isAppCollectorAlreadyRunning = false; } } } this.checkAppRunningTimer.Change(2000, Timeout.Infinite); }, null, 1000, Timeout.Infinite); this.dispatcherService.Invoke(() => { if (!this.googleManager.SecretFileExists()) { this.logger.LogWarning("Google json secret file doesn't exists, application will close"); this.eventAggregator.GetEvent<Events.DisplayErrorMessageEvent>().Publish(new Events.DisplayErrorMessageEventArgs() { Message = "Veuillez créer votre fichier client_secrets.json, placez le dans " + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\CollectionneurRecettes.Addon\n et redémarrez l'application", CloseApplication = true }); } }); }); }
public MainWindowViewModel( CrossCutting.ILoggerService logger, Interfaces.ICollectorReceiptManager collectorReceiptManager, Interfaces.ISettingsManager settingsManager, Interfaces.IGoogleManager googleManager, Services.IDispatcherService dispatcherService, IEventAggregator eventAggregator) { if (settingsManager == null) { throw new ArgumentNullException("settingsManager"); } if (dispatcherService == null) { throw new ArgumentNullException("dispatcherService"); } if (collectorReceiptManager == null) { throw new ArgumentNullException("collectorReceiptManager"); } if (eventAggregator == null) { throw new ArgumentNullException("eventAggregator"); } if (googleManager == null) { throw new ArgumentNullException("googleManager"); } if (logger == null) { throw new ArgumentNullException("logger"); } this.exitCommand = new DelegateCommand(new Action(() => { System.Windows.Application.Current.Shutdown(); })); this.showParametersCommand = new DelegateCommand(new Action(() => { var regionManager = ServiceLocator.Current.GetInstance <Prism.Regions.IRegionManager>(); regionManager.RequestNavigate("AppBarRegion", new Uri("AppBarParametersView", UriKind.Relative)); regionManager.RequestNavigate("MainRegion", new Uri("ParametersView", UriKind.Relative)); this.eventAggregator.GetEvent <Events.ActivateWindowEvent>().Publish(null); })); this.SyncMenuCommand = new DelegateCommand(() => { var regionManager = ServiceLocator.Current.GetInstance <Prism.Regions.IRegionManager>(); //regionManager.RequestNavigate("AppBarRegion", new Uri("AppBarParametersView", UriKind.Relative)); regionManager.RequestNavigate("MainRegion", new Uri("SyncMenuView", UriKind.Relative)); this.eventAggregator.GetEvent <Events.ActivateWindowEvent>().Publish(null); this.eventAggregator.GetEvent <Events.StartSyncEvent>().Publish(null); }); this.ShowAboutCommand = new DelegateCommand(() => { var regionManager = ServiceLocator.Current.GetInstance <Prism.Regions.IRegionManager>(); regionManager.RequestNavigate("MainRegion", new Uri("AboutView", UriKind.Relative)); this.eventAggregator.GetEvent <Events.ActivateWindowEvent>().Publish(null); }); this.logger = logger; this.eventAggregator = eventAggregator; this.collectorReceiptManager = collectorReceiptManager; this.googleManager = googleManager; this.settingsManager = settingsManager; this.dispatcherService = dispatcherService; this.LoadCommand = new DelegateCommand(() => { if (string.IsNullOrEmpty(this.settingsManager.LoadSettings().CollectionneurDabasePath)) { this.logger.LogInformation("Application settings not set, show parameters window"); this.dispatcherService.Invoke(() => { this.ShowParametersCommand.Execute(); }); } this.checkAppRunningTimer = new Timer((state) => { if (this.collectorReceiptManager.CanSync() == Entity.CanNotSyncReason.None) { if (this.collectorReceiptManager.IsCollectorReceiptAppRunning()) { if (!this.isAppCollectorAlreadyRunning) { // the app is not running before, so show notification this.eventAggregator.GetEvent <Events.DisplayNotificationMessageEvent>().Publish("Application collectionneur de recettes détectées, en attente de fermeture pour synchronisation"); this.isAppCollectorAlreadyRunning = true; } } else { if (this.isAppCollectorAlreadyRunning) { // the app was running, so launch sync // TODO: launch sync var regionManager = ServiceLocator.Current.GetInstance <Prism.Regions.IRegionManager>(); regionManager.RequestNavigate("MainRegion", new Uri("SyncMenuView", UriKind.Relative)); this.eventAggregator.GetEvent <Events.StartSyncEvent>().Publish(null); this.eventAggregator.GetEvent <Events.DisplayNotificationMessageEvent>().Publish("Application collectionneur de recettes fermée, début de la synchronisation"); this.isAppCollectorAlreadyRunning = false; } } } this.checkAppRunningTimer.Change(2000, Timeout.Infinite); }, null, 1000, Timeout.Infinite); this.dispatcherService.Invoke(() => { if (!this.googleManager.SecretFileExists()) { this.logger.LogWarning("Google json secret file doesn't exists, application will close"); this.eventAggregator.GetEvent <Events.DisplayErrorMessageEvent>().Publish(new Events.DisplayErrorMessageEventArgs() { Message = "Veuillez créer votre fichier client_secrets.json, placez le dans " + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\CollectionneurRecettes.Addon\n et redémarrez l'application", CloseApplication = true }); } }); }); }