/// <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; }
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)); }