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 });
}