/// <summary> /// Processes the instance edit. /// </summary> /// <param name="runtime">The runtime.</param> /// <param name="result">The result.</param> /// <param name="view">The view.</param> /// <param name="editAction">The edit action.</param> /// <returns>ExecutionView.</returns> /// <exception cref="System.NotSupportedException">Error occured during edit: + lastError</exception> /// <exception cref="System.Collections.Generic.KeyNotFoundException">Specified edit hasn't been found</exception> private static ExecutionView processInstanceEdit(RuntimeAssembly runtime, AnalyzingResult result, ExecutionView view, EditAction editAction) { var editOwner = result.EntryContext.GetValue(editAction.Variable); string lastError = null; foreach (var edit in editOwner.Edits) { if (edit.Name != editAction.Name) { continue; } var editView = new EditView(view); var resultView = runtime.RunEdit(edit, editView); editView = (resultView as EditView); if (editView.HasError) { lastError = editView.Error; continue; } return(editView.CopyView()); } if (lastError != null) { throw new NotSupportedException("Error occured during edit: " + lastError); } throw new KeyNotFoundException("Specified edit hasn't been found"); }