public void SingleChildNode_can_have_child()
        {
            var db = newDatabase();

            db.DeleteNodeByParentId(4);

            var scn = new SingleChildrenNode(newDatabase())
            {
                Id = 4
            };

            Assert.AreEqual(true, scn.CanHaveChild());
        }
        public void SingleChildNode_can_have_only_one_child()
        {
            var scn = new SingleChildrenNode(newDatabase())
            {
                Id = 4
            };

            var child1 = new NodeModel("child 1", "1234AA1234", "MultiChildrenNode");

            scn.AddChild(child1);

            var child2 = new NodeModel("child 2", "5678BB5678", "SingleChildrenNode");

            scn.AddChild(child2);
        }
Example #3
0
        private void SaveNewChild_Click(object sender, RoutedEventArgs e)
        {
            switch (node.GetType().Name)
            {
            case "MultiChildrenNode":
                var multiNode = new MultiChildrenNode(_database);
                multiNode.Id = node.Id;

                multiNode.properties.Brand = NodeBrand.Text;
                multiNode.properties.Model = NodeModel.Text;

                if (NodePrice.Text.Length > 0 && double.TryParse(NodePrice.Text, out double mPrice))
                {
                    multiNode.properties.Price = mPrice;
                }

                if (Maintenance.Text.Length > 0 && int.TryParse(Maintenance.Text, out int maintenance))
                {
                    multiNode.properties.FreeMaintenance = maintenance;
                }

                _database.UpdateProperties(multiNode);
                break;

            case "SingleChildrenNode":
                var singleNode = new SingleChildrenNode(_database);
                singleNode.Id = node.Id;

                singleNode.properties.Brand = NodeBrand.Text;
                singleNode.properties.Model = NodeModel.Text;

                if (NodePrice.Text.Length > 0 && double.TryParse(NodePrice.Text, out double sPrice))
                {
                    singleNode.properties.Price = sPrice;
                }

                if (Maintenance.Text.Length > 0 && int.TryParse(Warranty.Text, out int warranty))
                {
                    singleNode.properties.WarrantyPeriod = warranty;
                }

                _database.UpdateProperties(singleNode);
                break;

            case "NullChildrenNode":
                var nullNode = new NullChildrenNode(_database);
                nullNode.Id = node.Id;

                nullNode.properties.Brand = NodeBrand.Text;
                nullNode.properties.Model = NodeModel.Text;

                if (NodePrice.Text.Length > 0 && double.TryParse(NodePrice.Text, out double nPrice))
                {
                    nullNode.properties.Price = nPrice;
                }

                nullNode.properties.Material = Material.Text;

                if (Maintenance.Text.Length > 0 && int.TryParse(Warranty.Text, out int year))
                {
                    nullNode.properties.Year = year;
                }

                _database.UpdateProperties(nullNode);
                break;

            default:
                throw new ArgumentException("Unknown type!");
            }

            Cleaning();
            this.Close();
        }