// --------------------------------------------------------------------------------------------------------------------------------------------------------- /// <summary> /// Stops and discards this composition engine, closing and freeing its related entities, views and resources. /// Returns indication of discard executed or aborted (maybe due to cancellation by unsaved changes). /// </summary> public bool Stop(bool ForceDiscard = false) { base.Stop(); // Stop watching any possible temp-files for Attachments being edited. DetailAttachmentEditor.StopWatchingAttachmentsFor(this); // Discard clipboard transfer content if (ClipboardTransferSourceView != null && ClipboardTransferSourceView.OwnerCompositeContainer.OwnerComposition == this.TargetComposition) { ClipboardTransferSelectedObjects.Clear(); } // Discards the visual views. this.Visualizer.DiscardAllViews(); // Discards remembered for-edit objects Definitor.DefinitorMaintenance.DomainMaintainer.RememberedTemplateTestConcept.Remove(this.TargetComposition); Definitor.DefinitorMaintenance.DomainMaintainer.RememberedTemplateTestRelationship.Remove(this.TargetComposition); // PENDING: Free resources, if any. this.EntityChanged -= this.ExistenceUpdateAction; return(this.ExistenceStatus != EExistenceStatus.Modified); }
/// <summary> /// Tries to close any pending resources still open (such as temporal Attachment files) /// </summary> public bool CloseRelatedResources(CompositionEngine Engine) { var Failure = DetailAttachmentEditor.TryLoadPendingAttachmentsFor(Engine); if (Failure == null) { return(true); } var Result = Display.DialogMessage("Error!", Failure.Message + "\n\nProblem: " + Failure.InnerException.Message + "\n\n" + "Do you want to ignore that problem and continue (potentially lossing information)?", EMessageType.Question, System.Windows.MessageBoxButton.OKCancel, System.Windows.MessageBoxResult.Cancel); return(Result == MessageBoxResult.OK); }