public void TestSerialization() { var info = new ErrorInfo("test_case_error", "This is an error") { Target = "ToString_Default", Details = new[] { new ErrorInfo("detail_code", "Detail one") { Details = new[] { new ErrorInfo("nested_datail", "nesting"), }, Target = "First", Inner = new TestInnerError("inner_code") { Data = "data item", }, }, new ErrorInfo("another_detail", "yet again"), }, Inner = new TestInnerError("inner_code_2") { Data = "data item", Inner = new TestInnerError("inner_code_3") { Data = "data item", }, }, }; var exception = new ExtensionException(info, "An error", null); using (var stream = new MemoryStream()) { var formatter = new BinaryFormatter(); try { formatter.Serialize(stream, exception); } catch (Exception e) { Assert.Fail(e.Message); } stream.Seek(0, SeekOrigin.Begin); ExtensionException deserialized = null; try { deserialized = (ExtensionException)formatter.Deserialize(stream); } catch (Exception e) { Assert.Fail(e.Message); } Assert.AreEqual(exception.ToString(), deserialized.ToString()); } }
internal static bool SaveDescription(Extensions form, ExtensionObjectList extensionObjectList) { TreeView extensionTreeView = form.extensionTreeView; TextBox descriptionTextBox = form.descriptionTextBox; if (String.IsNullOrEmpty(descriptionTextBox.Text)) { WindowManager.ShowAlertBox(form, LanguageUtil.GetCurrentLanguageString("ExtensionNameNotEmpty", className)); descriptionTextBox.Focus(); return(true); } ExtensionObject selectedExtensionObject = null; foreach (ExtensionObject extensionObject in extensionObjectList) { if (extensionObject.Description != extensionTreeView.SelectedNode.Text && extensionObject.Description == descriptionTextBox.Text) { WindowManager.ShowAlertBox(form, LanguageUtil.GetCurrentLanguageString("AlreadyExists", className)); descriptionTextBox.Focus(); return(true); } if (extensionObject.Description == extensionTreeView.SelectedNode.Text) { selectedExtensionObject = extensionObject; } } if (selectedExtensionObject == null) { String error = LanguageUtil.GetCurrentLanguageString("Saving", className); ExtensionException exception = new ExtensionException(error); WindowManager.ShowErrorBox(form, error, exception); return(false); } selectedExtensionObject.Description = descriptionTextBox.Text; extensionTreeView.SelectedNode.Text = selectedExtensionObject.Description; return(true); }
internal static bool RemoveExtension(Extensions form, ExtensionObjectList extensionObjectList) { TreeView extensionTreeView = form.extensionTreeView; TextBox descriptionTextBox = form.descriptionTextBox; int indexNodeToRemove = extensionTreeView.SelectedNode.Index; int extensionPositionInList = GetExtensionPositionInList(extensionObjectList, descriptionTextBox.Text); if (extensionPositionInList == -1) { String error = LanguageUtil.GetCurrentLanguageString("Removing", className); ExtensionException exception = new ExtensionException(error); WindowManager.ShowErrorBox(form, error, exception); return(false); } extensionObjectList.RemoveAt(extensionPositionInList); extensionTreeView.Focus(); extensionTreeView.Nodes.Remove(extensionTreeView.SelectedNode); extensionTreeView.SelectedNode = extensionTreeView.Nodes.Count > indexNodeToRemove ? extensionTreeView.Nodes[indexNodeToRemove] : extensionTreeView.Nodes[indexNodeToRemove - 1]; return(true); }