public virtual bool Close(IWorkspaceController workspaceController, bool force)
        {
            if (force || !IsDirty)
            {
                return(true);
            }

            var userResponse = MessageBox.Show($"Save changes to {_workspaceContainer?.WorkspaceTitle ?? Path.GetFileName(_filename)}?",
                                               "Confirmation",
                                               MessageBoxButtons.YesNoCancel,
                                               MessageBoxIcon.Question);

            if (userResponse == DialogResult.No)
            {
                return(true);
            }
            else if (userResponse == DialogResult.Cancel)
            {
                return(false);
            }
            else
            {
                return(Save(workspaceController));
            }
        }
        public virtual bool Save(IWorkspaceController workspaceController)
        {
            if (string.IsNullOrWhiteSpace(_filename))
            {
                var requestWriterArgs = new RequestNewFileArgs();
                workspaceController.RequestNewFile(requestWriterArgs);
                if (requestWriterArgs.Cancel)
                {
                    return(false);
                }
                if (requestWriterArgs.Filename == null)
                {
                    throw new ApplicationException("Filename returned by Controller is null");
                }
                _filename = requestWriterArgs.Filename;
            }

            var           workspaceModel = buildWorkspaceModel();
            XmlSerializer serializer     = new XmlSerializer(typeof(Workspace));

            using (StreamWriter sw = new StreamWriter(_filename)) {
                serializer.Serialize(sw, workspaceModel);
                sw.Close();
            }
            IsDirty = false;
            OnDirtyChanged?.Invoke(this, new DirtyChangedEventArgs(false));
            RaiseOnSavedEvent(_filename);
            return(true);
        }
Example #3
0
 public AppManager(
     IMainPageHelper mainPageHelper,
     INavigationController navigationController,
     IWorkspaceController workspaceController,
     IUIManager <TPage> uIManager)
 {
     MainPageHelper       = mainPageHelper;
     NavigationController = navigationController;
     WorkspaceController  = workspaceController;
     UIManager            = uIManager;
 }
 public AtomController(IPublisher publisher) : base(publisher)
 {
     _userWorkspaceController = new UserWorkspaceController(publisher);
 }
 public override bool Save(IWorkspaceController workspaceController)
 {
     DidSaveWorkspace = true;
     RaiseOnSavedEvent(Filename);
     return(true);
 }
 public override bool Close(IWorkspaceController workspaceController, bool force)
 {
     WasClosed = force || !IsDirty;
     return(WasClosed);
 }