private void file_CloseAllButThisWorkflowFileClicked(object sender, WorkflowFileCloseEventArgs e) { var workflowsInfos = files .Where(f => f != e.WorkflowFile && !f.IsSaved) .Select(f => new WorkflowFileInfo(f)) .ToArray(); var saveMessage = new SaveBeforeCloseMessage( workflowsInfos, null, result => { if (result == QuestionResult.Cancel) { return; } if (result == QuestionResult.Yes) { //file.Save(); } //files.Remove(file); }); MessengerInstance.Send(saveMessage); }
private void file_CloseWorkflowFileClicked(object sender, WorkflowFileCloseEventArgs e) { var index = files.IndexOf(e.WorkflowFile); if (index == -1) { return; } var fileToClose = files[index]; if (!fileToClose.IsSaved) { var saveResult = QuestionResult.Yes; var saveMessage = new SaveBeforeCloseMessage( new List <WorkflowFileInfo> { new WorkflowFileInfo(fileToClose) }, null, result => { saveResult = result; }); MessengerInstance.Send(saveMessage); if (saveResult == QuestionResult.Cancel) { return; } if (saveResult == QuestionResult.Yes) { if (!fileToClose.Save()) { return; } } } files.Remove(fileToClose); if (files.Count == 0) { ActiveWorkflowFile = null; } }
private static void OnSaveBeforeCloseMessage(SaveBeforeCloseMessage saveBeforeCloseMessage) { var msg = new StringBuilder("Save changes to the following workflows?"); msg.AppendLine(); msg.AppendLine(); foreach (var workflowInfo in saveBeforeCloseMessage.WorkflowsInfos) { var never = workflowInfo.IsDirty ? " (never saved before)" : string.Empty; msg.AppendLine(string.Concat(workflowInfo.Title, never)); } var result = MessageBox.Show( msg.ToString(), "Save Confirmation - FlowStudio", MessageBoxButton.YesNoCancel, MessageBoxImage.Question, MessageBoxResult.Cancel); var questionResult = QuestionResult.Cancel; if (result == MessageBoxResult.Yes) { questionResult = QuestionResult.Yes; } else if (result == MessageBoxResult.No) { questionResult = QuestionResult.No; } saveBeforeCloseMessage.Execute(questionResult); }
private void file_CloseWorkflowFileClicked(object sender, WorkflowFileCloseEventArgs e) { var index = files.IndexOf(e.WorkflowFile); if (index == -1) { return; } var fileToClose = files[index]; if (!fileToClose.IsSaved) { var saveResult = QuestionResult.Yes; var saveMessage = new SaveBeforeCloseMessage( new List<WorkflowFileInfo> { new WorkflowFileInfo(fileToClose) }, null, result => { saveResult = result; }); MessengerInstance.Send(saveMessage); if (saveResult == QuestionResult.Cancel) { return; } if (saveResult == QuestionResult.Yes) { if (!fileToClose.Save()) { return; } } } files.Remove(fileToClose); if (files.Count == 0) { ActiveWorkflowFile = null; } }