public ActionResult ItemDetail(BOD_Item_Model model)
        {
            int boid;
            if (model.Id < 0)
            {
                var parent = _BODdb.BOD_Items.Find(model.boid, model.ParentId);
                boid = parent.BOD_BO_Id;
                BOD_Item newitem = new BOD_Item() { BO = parent.BO, Type = getType(model.Type_String), ParentItem = parent, Name = model.Name, Id = IdHelper.getBODItemId(_BODdb, model.boid) };

                if (newitem.Type == POD_DataTypes._array)
                {

                    BOD_Item listDefinition = new BOD_Item() { BO = newitem.BO, Type = POD_DataTypes._string, ParentItem = newitem, Name = "item", Id = IdHelper.getBODItemId(_BODdb, model.boid) + 1 };
                    _BODdb.BOD_Items.Add(listDefinition);

                }

                _BODdb.BOD_Items.Add(newitem);

                _BODdb.SaveChanges();
            }
            else
            {
                var item = _BODdb.BOD_Items.Find(model.boid, model.Id);

                var parent = _BODdb.BOD_Items.Find(model.boid, item.ParentItem_Id);

                BOD_Item_Model origm = new BOD_Item_Model() { IsArray = parent.Type == POD_DataTypes._array ,  boid = item.BOD_BO_Id, Id = item.Id, Name = item.Name, Type = item.Type };
                boid = item.BOD_BO_Id;
                item.Name = model.Name;

                if (!origm.Type_String.Equals(model.Type_String))
                {

                    item.Type = getType(model.Type_String);

                    if (item.Type == POD_DataTypes._array)
                    {
                        _BODdb.BOD_Items.RemoveRange(item.ChildItems);
                        BOD_Item listDefinition = new BOD_Item() { BO = item.BO, Type = POD_DataTypes._string, ParentItem = item, Name = "item", Id = IdHelper.getBODItemId(_BODdb, model.boid) };
                        _BODdb.BOD_Items.Add(listDefinition);

                    }
                    else if (item.Type != POD_DataTypes._object)
                    {
                        if (item.ChildItems.Count() > 0)
                        {
                            _BODdb.BOD_Items.RemoveRange(item.ChildItems);
                        }
                    }
                }
                _BODdb.SaveChanges();
            }

            _BODdb.BOD_BOs.Find(model.boid).LastChange = DateTime.Now;
            _BODdb.SaveChanges();

            return RedirectToAction("ViewBO", new { id = boid });
        }
        /*
        public string ViewJsonSchema()
        {
            string m = "";

            Model2JSON mj = new Model2JSON(2);

            m = mj.getSchema();

            return m;
        }

        public string ViewJsonDefault()
        {
            string m = "";

            Model2JSON mj = new Model2JSON(2);

            m = mj.getDefaultData();

            return m;
        }

        public string ViewCSHtml()
        {
            string h = "";

            Model2Html hj = new Model2Html(2);

            h = hj.getcsHTML();

            return h;
        }
        */


        private BOD_Item_Model createModel(BOD_Item item)
        {
            BOD_Item_Model m = new BOD_Item_Model() {IsArray = false, boid = item.BOD_BO_Id, Id = item.Id, Name = item.Name, Type = item.Type, ChildItems = new List<BOD_Item_Model>(), ParentId = item.ParentItem_Id };

            if (item.ChildItems.Count > 0)
            {
                foreach (var child in item.ChildItems)
                {
                    m.ChildItems.Add(createModel(child));
                }
            }


            return m;
        }
        public ActionResult ItemDetail(int boid, int id, int parentId)
        {
            BOD_Item_Model m;

            var parent = _BODdb.BOD_Items.Find(boid, parentId);
            if (id < 0)
            {
                m = new BOD_Item_Model() {IsArray = parent.Type == POD_DataTypes._array ,boid = boid, Id = -1, Name = "", Type = POD_DataTypes._string, ChildItems = new List<BOD_Item_Model>(), ParentId = parentId };
            }
            else
            {
                var item = _BODdb.BOD_Items.Where(r => r.Id == id && r.BOD_BO_Id == boid).First();
                m = new BOD_Item_Model() { IsArray = parent.Type == POD_DataTypes._array, boid = boid, Id = item.Id, Name = item.Name, Type = item.Type, ChildItems = new List<BOD_Item_Model>(), ParentId = item.ParentItem_Id };

            }

            return PartialView(m);
        }