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());
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }