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); }
public void RequestNewFile(RequestNewFileArgs args) { if (_fileDialog.ShowNewWorkspaceDialog() == DialogResult.Cancel) { args.Cancel = true; args.Filename = null; return; } args.Cancel = false; args.Filename = _fileDialog.FileName; }