/// <summary>
 /// Finalizes the DocumentsViewModel initialization and opens the default document.
 /// Since DocumentsViewModel is a POCO view model, an instance of this class will also expose the OnLoadedCommand property that can be used as a binding source in views.
 /// </summary>
 public virtual void OnLoaded(TModule module)
 {
     IsLoaded = true;
     DocumentManagerService.ActiveDocumentChanged += OnActiveDocumentChanged;
     if (!RestoreLogicalLayout())
     {
         Show(module);
     }
     PersistentLayoutHelper.TryDeserializeLayout(LayoutSerializationService, ViewLayoutName);
 }
        /// <summary>
        /// Used to close all opened documents and allows you to save unsaved results and to cancel closing.
        /// Since DocumentsViewModel is a POCO view model, an instance of this class will also expose the OnClosingCommand property that can be used as a binding source in views.
        /// </summary>
        /// <param name="cancelEventArgs">An argument of the System.ComponentModel.CancelEventArgs type which is used to cancel closing if needed.</param>
        public virtual void OnClosing(CancelEventArgs cancelEventArgs)
        {
            if (GroupedDocumentManagerService != null && GroupedDocumentManagerService.Groups.Count() > 1)
            {
                var activeGroup = GroupedDocumentManagerService.ActiveGroup;
                var message     = new CloseAllMessage(cancelEventArgs, vm =>
                {
                    var activeVMs = activeGroup.Documents.Select(d => d.Content);
                    return(activeVMs.Contains(vm));
                });
                Messenger.Default.Send(message);
                return;
            }
            //BluePrints Customization
            //SaveLogicalLayout();
            if (LayoutSerializationService != null)
            {
                PersistentLayoutHelper.PersistentViewsLayout[ViewLayoutName] = LayoutSerializationService.Serialize();
            }

            Messenger.Default.Send(new CloseAllMessage(cancelEventArgs, vm => true));
            PersistentLayoutHelper.SaveLayout();
        }
 void SaveLayout()
 {
     PersistentLayoutHelper.TrySerializeLayout(LayoutSerializationService, ViewName);
     PersistentLayoutHelper.SaveLayout();
 }
 public virtual void OnLoaded()
 {
     PersistentLayoutHelper.TryDeserializeLayout(LayoutSerializationService, ViewName);
 }