/// <summary> /// Initializes the specified service locator. /// </summary> /// <param name="serviceLocator">The service locator.</param> public void Initialize(IServiceLocator serviceLocator) { Argument.IsNotNull("serviceLocator", serviceLocator); serviceLocator.RegisterTypeIfNotYetRegistered <IDataContextSubscriptionService, DataContextSubscriptionService>(); serviceLocator.RegisterTypeIfNotYetRegistered <ICommandManager, CommandManager>(); serviceLocator.RegisterTypeIfNotYetRegistered <IViewLoadManager, ViewLoadManager>(); serviceLocator.RegisterTypeIfNotYetRegistered <IViewModelWrapperService, ViewModelWrapperService>(); serviceLocator.RegisterTypeIfNotYetRegistered <IViewManager, ViewManager>(); serviceLocator.RegisterTypeIfNotYetRegistered <IViewModelManager, ViewModelManager>(); serviceLocator.RegisterTypeIfNotYetRegistered <IAutoCompletionService, AutoCompletionService>(); #if NET || NETCORE serviceLocator.RegisterTypeIfNotYetRegistered <IWrapControlService, WrapControlService>(); #endif ViewModelServiceHelper.RegisterDefaultViewModelServices(serviceLocator); #if !XAMARIN var typeFactory = serviceLocator.ResolveType <ITypeFactory>(); var auditor = typeFactory.CreateInstance <InvalidateCommandManagerOnViewModelInitializationAuditor>(); AuditingManager.RegisterAuditor(auditor); #endif DesignTimeHelper.InitializeDesignTime(); }
public void UnregisterAuditor_UnregisterNotExisting() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.UnregisterAuditor(auditor); Assert.AreEqual(0, AuditingManager.RegisteredAuditorsCount); }
public void RegisterAuditor_ValidAuditor() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); Assert.AreEqual(1, AuditingManager.RegisteredAuditorsCount); }
public DisposableSaveHandle( AuditingManager auditingManager, IDisposable scope, AuditLogInfo auditLog, Stopwatch stopWatch) { _auditingManager = auditingManager; _scope = scope; AuditLog = auditLog; StopWatch = stopWatch; }
public GoogleAnalyticsService() { _analyticsAuditor = new AnalyticsAuditor(this); AuditingManager.RegisterAuditor(_analyticsAuditor); var entryAssembly = AssemblyHelper.GetEntryAssembly(); AppName = entryAssembly.Product(); AppVersion = entryAssembly.Version(); IsEnabled = true; }
public void OnViewModelCreated() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); Assert.AreEqual(true, auditor.OnViewModelCreatedCalled); Assert.AreEqual(typeof(TestViewModel), auditor.OnViewModelCreatedType); }
protected override async Task InitializeAsync() { var vm = _viewModelFactory.CreateViewModel <ProvideAnalyticsViewModel>(null); if (await _uiVisualizerService.ShowDialogAsync(vm) ?? false) { AuditingManager.RegisterAuditor(new GoogleAnalytics(vm.ApiKey, "Catel Analytics Example")); } else { await _messageService.ShowErrorAsync("Cannot provide analytics when no API is provided"); } }
/// <summary> /// Initializes the view model. Normally the initialization is done in the constructor, but sometimes this must be delayed /// to a state where the associated UI element (user control, window, ...) is actually loaded. /// <para/> /// This method is called as soon as the associated UI element is loaded. /// </summary> /// <remarks> /// It's not recommended to implement the initialization of properties in this method. The initialization of properties /// should be done in the constructor. This method should be used to start the retrieval of data from a web service or something /// similar. /// <para/> /// During unit tests, it is recommended to manually call this method because there is no external container calling this method. /// </remarks> protected override void Initialize() { var vm = new ProvideAnalyticsViewModel(); if (_uiVisualizerService.ShowDialog(vm) ?? false) { AuditingManager.RegisterAuditor(new GoogleAnalytics(vm.ApiKey, "Catel Analytics Example")); } else { _messageService.ShowError("Cannot provide analytics when no API is provided"); } }
public async Task OnViewModelCanceling() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); await viewModel.CancelViewModel(); Assert.AreEqual(true, auditor.OnViewModelCancelingCalled); Assert.AreEqual(viewModel, auditor.OnViewModelCancelingViewModel); }
public async Task OnViewModelClosed() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); await viewModel.CloseViewModelAsync(null); Assert.AreEqual(true, auditor.OnViewModelClosedCalled); Assert.AreEqual(viewModel, auditor.OnViewModelClosedViewModel); }
public async void OnViewModelSaved() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); await viewModel.SaveViewModel(); Assert.AreEqual(true, auditor.OnViewModelSavedCalled); Assert.AreEqual(viewModel, auditor.OnViewModelSavedViewModel); }
public async Task OnViewModelInitializedAsync() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); await viewModel.InitializeViewModelAsync(); Assert.AreEqual(true, auditor.OnViewModelInitializedCalled); Assert.AreEqual(typeof(TestViewModel), auditor.OnViewModelInitializedType); }
public void UnregisterAuditor_UnregisterNotExistingWithAnotherRegistered() { AuditingManager.Clear(); var auditor1 = new TestAuditor(); var auditor2 = new TestAuditor(); AuditingManager.RegisterAuditor(auditor1); Assert.AreEqual(1, AuditingManager.RegisteredAuditorsCount); AuditingManager.UnregisterAuditor(auditor2); Assert.AreEqual(1, AuditingManager.RegisteredAuditorsCount, "Count should still be 1"); }
public void OnViewModelCanceled() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); viewModel.CancelViewModel(); Assert.AreEqual(true, auditor.OnViewModelCanceledCalled); Assert.AreEqual(viewModel, auditor.OnViewModelCanceledViewModel); }
public void OnViewModelClosing() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); viewModel.CloseViewModel(null); Assert.AreEqual(true, auditor.OnViewModelClosingCalled); Assert.AreEqual(viewModel, auditor.OnViewModelClosingViewModel); }
public GoogleAnalyticsService(IUserIdService userIdService) { Argument.IsNotNull(() => userIdService); _userIdService = userIdService; _analyticsAuditor = new AnalyticsAuditor(this); AuditingManager.RegisterAuditor(_analyticsAuditor); var entryAssembly = AssemblyHelper.GetEntryAssembly(); AppName = entryAssembly.Product(); AppVersion = entryAssembly.Version(); IsEnabled = true; }
public void OnPropertyChanged() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); viewModel.TestProperty = "test"; Assert.AreEqual(true, auditor.OnPropertyChangedCalled); Assert.AreEqual(viewModel, auditor.OnPropertyChangedViewModel); Assert.AreEqual("TestProperty", auditor.OnPropertyChangedPropertyName); Assert.AreEqual("test", auditor.OnPropertyChangedNewValue); }
public void OnPropertyChanging() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); viewModel.TestProperty = "test"; Assert.AreEqual(true, auditor.OnPropertyChangingCalled); Assert.AreEqual(viewModel, auditor.OnPropertyChangingViewModel); Assert.AreEqual("TestProperty", auditor.OnPropertyChangingPropertyName); Assert.AreEqual("defaultvalue", auditor.OnPropertyChangingOldValue); }
public void OnCommandExecuted() { AuditingManager.Clear(); var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); viewModel.TestCommand.Execute("test"); Assert.AreEqual(true, auditor.OnCommandExecutedCalled); Assert.AreEqual(viewModel, auditor.OnCommandExecutedViewModel); Assert.AreEqual("TestCommand", auditor.OnCommandExecutedCommandName); Assert.AreEqual(viewModel.TestCommand, auditor.OnCommandExecutedCommand); Assert.AreEqual("test", auditor.OnCommandExecutedCommandParameter); }
public void OnPropertyChanged_IgnoredProperties() { AuditingManager.Clear(); var auditor = new TestAuditor(); auditor.PropertiesToIgnore.Add("TestProperty"); AuditingManager.RegisterAuditor(auditor); var viewModel = new TestViewModel(); viewModel.TestProperty = "test"; Assert.AreEqual(false, auditor.OnPropertyChangedCalled); Assert.AreEqual(null, auditor.OnPropertyChangedViewModel); Assert.AreEqual(null, auditor.OnPropertyChangedPropertyName); Assert.AreEqual(null, auditor.OnPropertyChangedNewValue); }
public void CloseAfterCloseProtection() { var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var vm = new TestViewModel(); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); vm.CloseViewModel(null); Assert.AreEqual(true, auditor.OnViewModelClosedCalled); auditor.OnViewModelClosedCalled = false; vm.CloseViewModel(null); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); }
public async Task SaveAfterCloseProtection() { var auditor = new TestAuditor(); AuditingManager.RegisterAuditor(auditor); var vm = new TestViewModel(); Assert.AreEqual(false, auditor.OnViewModelSavedCalled); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); await vm.SaveAndCloseViewModelAsync(); Assert.AreEqual(true, auditor.OnViewModelSavedCalled); Assert.AreEqual(true, auditor.OnViewModelClosedCalled); auditor.OnViewModelSavedCalled = false; auditor.OnViewModelClosedCalled = false; await vm.SaveAndCloseViewModelAsync(); Assert.AreEqual(false, auditor.OnViewModelSavedCalled); Assert.AreEqual(false, auditor.OnViewModelClosedCalled); }
public void UnregisterAuditor_Null() { ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => AuditingManager.UnregisterAuditor(null)); }