Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
        public void UnregisterAuditor_UnregisterNotExisting()
        {
            AuditingManager.Clear();

            var auditor = new TestAuditor();
            AuditingManager.UnregisterAuditor(auditor);

            Assert.AreEqual(0, AuditingManager.RegisteredAuditorsCount);
        }
Exemplo n.º 3
0
        public void RegisterAuditor_ValidAuditor()
        {
            AuditingManager.Clear();

            var auditor = new TestAuditor();
            AuditingManager.RegisterAuditor(auditor);

            Assert.AreEqual(1, AuditingManager.RegisteredAuditorsCount);
        }
Exemplo n.º 4
0
 public DisposableSaveHandle(
     AuditingManager auditingManager,
     IDisposable scope,
     AuditLogInfo auditLog,
     Stopwatch stopWatch)
 {
     _auditingManager = auditingManager;
     _scope           = scope;
     AuditLog         = auditLog;
     StopWatch        = stopWatch;
 }
Exemplo n.º 5
0
        public GoogleAnalyticsService()
        {
            _analyticsAuditor = new AnalyticsAuditor(this);

            AuditingManager.RegisterAuditor(_analyticsAuditor);

            var entryAssembly = AssemblyHelper.GetEntryAssembly();

            AppName    = entryAssembly.Product();
            AppVersion = entryAssembly.Version();

            IsEnabled = true;
        }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 7
0
        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");
            }
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
        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");
        }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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;
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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);
        }
Exemplo n.º 21
0
        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);
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
 public void UnregisterAuditor_Null()
 {
     ExceptionTester.CallMethodAndExpectException <ArgumentNullException>(() => AuditingManager.UnregisterAuditor(null));
 }