Beispiel #1
0
        /// <summary>
        /// Callback utilisé lors de l'exécution de la commande CancelCommand
        /// </summary>
        protected override void OnCancelCommandExecute()
        {
            this.HideValidationErrors();

            var t = this.SelectedTargetScenario;

            this.SelectedTargetScenario = null;

            var o = this.SelectedOriginalScenario;

            this.SelectedOriginalScenario = null;

            // Détecter les entités nouvelles et les supprimer

            ObjectWithChangeTrackerExtensions.CancelChanges(
                new Scenario[] { t },
                t.Actions
                );

            this.SelectedTargetScenario   = t;
            this.SelectedOriginalScenario = o;

            this.CanChange = true;
        }
Beispiel #2
0
        public void GanttGridTests()
        {
            KProcess.Ksmed.Business.Tests.SampleData.ClearDatabaseThenImportDefaultProject();

            // On récupère les données
            var service = new AnalyzeService();

            var mre = new ManualResetEvent(false);

            var collection     = new BulkObservableCollection <DataTreeGridItem>();
            var actionsManager = new GridActionsManager(collection, null, null);

            actionsManager.ChangeView(Core.GanttGridView.WBS, null);

            var categories = new BulkObservableCollection <ActionCategory>();

            Video[]    videos    = null;
            Scenario[] scenarios = null;
            Scenario   scenario  = null;

            Exception ex = null;

            service.GetAcquireData(SampleData.GetProjectId(),
                                   data =>
            {
                categories.AddRange(data.Categories);
                videos = data.Videos;

                scenarios = data.Scenarios;

                scenario = scenarios.First();

                foreach (var action in scenario.Actions)
                {
                    action.StartTracking();
                }

                mre.Set();
            },
                                   e =>
            {
                ex = e;
                mre.Set();
            });

            mre.WaitOne();

            AssertExt.IsExceptionNull(ex);

            actionsManager.RegisterInitialActions(scenario.Actions);

            Assert.IsTrue(scenario.Actions.Count > 1);
            Assert.IsTrue(collection.Count > 1);
            Assert.IsTrue(videos.Length > 0);
            Assert.IsTrue(scenario.Actions[1].Video != null);

            // Capturons l'état de toutes les éléments
            var originalValues = GetCurrentValues(scenario.Actions, categories, videos);

            Modify(actionsManager, collection, scenario);

            var modifiedValues = GetCurrentValues(scenario.Actions, categories, videos);

            Assert.IsFalse(AreDumpsEqual(originalValues, modifiedValues));

            // On annule les changements
            actionsManager.UnregisterAllItems();
            ObjectWithChangeTrackerExtensions.CancelChanges(scenario.Actions, categories, videos);

            var revertedValues = GetCurrentValues(scenario.Actions, categories, videos);

            Assert.IsTrue(AreDumpsEqual(originalValues, revertedValues));



            // On recommence
            actionsManager.RegisterInitialActions(scenario.Actions);
            Modify(actionsManager, collection, scenario);

            modifiedValues = GetCurrentValues(scenario.Actions, categories, videos);

            Assert.IsFalse(AreDumpsEqual(originalValues, modifiedValues));

            // On annule les changements
            actionsManager.UnregisterAllItems();
            ObjectWithChangeTrackerExtensions.CancelChanges(scenario.Actions, categories, videos);

            revertedValues = GetCurrentValues(scenario.Actions, categories, videos);

            Assert.IsTrue(AreDumpsEqual(originalValues, revertedValues));
        }